Вы находитесь на странице: 1из 9

LAPORAN POST TEST DESIGN PATTERN

RISA FATMAWATI / 2110171035 / 2 D4 IT B

1. FACADE PATTERN
( UML )

creates

Code Program :
#Class Interfaces
Line.java
package facadepattern;

public interface Line {


void send();
}

#Concrete Class
Chat.java
package facadepattern;

public class Chat implements Line{


public void send(){
System.out.println("Chat::send()");
}
}
Picture.java
package facadepattern;

public class Picture implements Line{


public void send(){
System.out.println("Picture::send()");
}
}

Emoji.java
package facadepattern;

public class Emoji implements Line{


public void send(){
System.out.println("Emoji::send()");
}
}

#Facade Class
package facadepattern;

public class LineType {


private Line chat;
private Line picture;
private Line emoji;

public LineType(){
chat = new Chat();
picture = new Picture();
emoji = new Emoji();
}

public void sendChat(){


chat.send();
}
public void sendPicture(){
picture.send();
}
public void sendEmoji(){
emoji.send();
}
}
#FacadePatternDemo
package facadepattern;

public class Facadepattern {

public static void main(String[] args) {


LineType lineType = new LineType();

lineType.sendChat();
lineType.sendPicture();
lineType.sendEmoji();
}
}

Output :
2. TEMPLATE PATTERN
( UML )

Code Program :
Chat.java
package templatepattern;

public class Chat extends Send {


@Override
void typing() {
System.out.println("Typing message");
}

@Override
void read() {
System.out.println("Read message");

@Override
void reply() {
System.out.println("Reply message");
}

@Override
void send() {
System.out.println("Send message");
}
}
Picture.java
package templatepattern;

public class Picture extends Send{


@Override
void typing() {
System.out.println("Typing message");
}

@Override
void read() {
System.out.println("Read message");

@Override
void reply() {
System.out.println("Reply message");
}

@Override
void send() {
System.out.println("Send message");
}
}

Class Interfaces Send.java


package templatepattern;

public abstract class Send {


abstract void typing();
abstract void read();
abstract void reply();
abstract void send();

public final void Send() {


typing();
read();
reply();
send();
}
}
TemplatePattern.java
package templatepattern;

public class Templatepattern {

public static void main(String[] args) {


Send send = new Chat();
send.send();
System.out.println();
send = new Picture();
send.send();
}

Output :
STRATEGY PATTERN
Studi Kasus
Kita ingin pergi ke bandara. Untuk menuju ke bandara, kita bisa menaiki bis,
memesan taksi, atau naik becak.

Code Program :
package strategypattern;

public interface Strategy {


public void berangkat();
}

package strategypattern;
public class Bis implements Strategy {
@Override
public void berangkat() {
System.out.println("Berangkat naik bis");
}
}

package strategypattern;
public class Taksi implements Strategy {
@Override
public void berangkat() {
System.out.println("Berangkat naik taksi");
}
}
package strategypattern;
public class Becak implements Strategy {
@Override
public void berangkat() {
System.out.println("Berangkat naik becak");
}
}

package strategypattern;

public class Context {


private Strategy strategy;

public Context(Strategy strategy) {


this.strategy = strategy;
}

public void executeStrategy() {


strategy.berangkat();
}
}
package strategypattern;
import java.util.Scanner;
public class StrategyPattern {

public static void main(String[] args) {


Context context = new Context(new Bis());

System.out.println("Masukkan kendaraan : ");


Scanner input = new Scanner(System.in);
input.nextLine();
if (input.equals("Bis")) {
context = new Context(new Bis());
} else if (input.equals("Taksi")) {
context = new Context(new Taksi());
} else if (input.equals("Becak")) {
context = new Context(new Becak());
}

context.executeStrategy();
}
}

Output :

Вам также может понравиться