<aside> 🎨 복합 패턴 반복적으로 생길 수 있는 일반적인 문제를 해결하는 용도로 2개 이상의 패턴을 결합해서 사용하는 것
</aside>
패턴을 잘 활용하는 방법 중 하나는 서로 다른 패턴을 섞어 쓰는 것이다.
복합 패턴이라고 하려면 여러 가지 문제의 일반적인 해결법을 제시해야 한다.
→ 여러 복합 패턴을 먼저 본 후, 복합 패턴의 왕이라고 불리는 **모델-뷰-컨트롤러(MVC)**를 알아본다.
Quackable
인터페이스를 만든다.
public interface Quackable {
public void quack();
}
Quackable
을 구현해서 오리 클래스를 만든다.
public class MallardDuck implements Quackable {
public void quack() {
System.out.println("꽥꽥");
}
}
public class RedheadDuck implements Quackable {
public void quack() {
System.out.println("꽥꽥");
}
}
public class DuckCall implements Quackable {
public void quack() {
System.out.println("꽉꽉");
}
}
public class RubberDuck implements Quackable {
public void quack() {
System.out.println("삑삑");
}
}
시뮬레이터를 만들어 테스트
public class DuckSimulator {
public static void main(String[] args) {
DuckSimulator simulator = new DuckSimulator();
simulator.simulate();
}
void simulate() {
Quackable mallardDuck = new MallardDuck();
Quackable redheadDuck = new RedheadDuck();
Quackable duckCall = new DuckCall();
Quackable rubberDuck = new RubberDuck();
System.out.println("\\nDuck Simulator");
simulate(mallardDuck);
simulate(redheadDuck);
simulate(duckCall);
simulate(rubberDuck);
}
void simulate(Quackable duck) {
duck.quack();
}
}
실행 결과