퍼사드 패턴
퍼사드 패턴은 복잡한 클래스들을 편하게 사용하기위해 인터페이스를 구성하는 구조 패턴입니다.
예제
IOT 를 조작하는 컨트롤러를 만든다고 가정해보겠습니다.
컨트롤러는 일어날때 커튼을 열고, 전등을 키고, 스피커에서 음악이 재생되도록 하고싶고,
집을 떠날때는 전등을 끄고, 스키퍼에서 음악이 멈추도록 하고싶습니다.
public class Remote {
private final Lights lights;
private final Curtains curtains;
private final Speaker speaker;
public Remote(Lights lights, Curtains curtains, Speaker speaker) {
this.lights = lights;
this.curtains = curtains;
this.speaker = speaker;
}
public void wakeUp() {
lights.on();
curtains.open();
speaker.musicStart();
}
public void leaveHome() {
lights.off();
speaker.musicStop();
}
}
public class Lights {
public void on() { ... }
public void off() { ... }
}
public class Curtains {
public void open() { ... }
public void close() { ... }
}
public class Speaker {
public void musicStart() { ... }
public void musicStop() { ... }
}
이렇게 작성한다면 Remote를 사용하는 사용자는 내부 클래스의 구현에 대해서 알 필요가 없어지고, 내부 클래스의 수정이 일어나도 Remote 코드만 수정하면 되므로 유연성이 향상됩니다.
이 퍼사드 패턴은 디자인패턴에 대해서 알지 못하더라도 그냥 자연스럽게 만들어지는 패턴같습니다. 쉽고 유용한 패턴이니 잘 적용해보시기 바랍니다.
'디자인패턴 > 구조' 카테고리의 다른 글
자바(JAVA) - 경량 패턴(Flyweight Pattern) (0) | 2024.12.05 |
---|---|
자바(JAVA) - 복합 패턴(Composite Pattern) (0) | 2024.12.05 |
자바[JAVA] - 데코레이터 패턴(Decorator Pattern) (0) | 2024.10.02 |
자바(JAVA) - 브릿지 패턴(Bridge Pattern) (0) | 2024.09.30 |
자바(JAVA) - 어댑터 패턴(Adapter Pattern) (0) | 2024.09.24 |