어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다.
퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있다.
Clent는 Facade 하나만 알고 있으면 수많은 subsystem class들을 사용할 수 있다.
컴퓨터를 작동시키기 위해 우리는 단순히 전원버튼만을 누르지만 이것도 퍼사드 패턴의 예
사용자는 버튼 하나의 클릭 만으로 컴퓨터를 실행 시키지만 컴퓨터 내부에서는 다양한 동작을 통해서 부팅하게 된다.
아래의 예에서는 부팅 과정을 간략화 하였습니다.
1. 서브시스템 클래스
public class CPU {
public void freeze() {
System.out.println("freeze");
}
public void jump() {
System.out.println("jump to");
}
public void execute() {
System.out.println("execute");
}
}
public class Memory {
public void load() {
System.out.println("load Memory");
}
}
public class HardDrive {
public void read() {
System.out.println("read HardDriver");
}
}
2. 퍼사드
퍼사드 패턴을 적용해서 부트시 CPU, MEMORY, HARDDRIVER를 작동 시킨다.
public class Computer {
public void boot() {
CPU cpu = new CPU();
Memory memory = new Memory();
HardDrive hardDrive = new HardDrive();
cpu.freeze();
hardDrive.read();
memory.load();
cpu.jump();
cpu.execute();
}
}
3. 클라이언트
public class FacadePatternDemo {
public static void main(String[] args) {
Computer computer = new Computer();
computer.boot();
}
}
4. 실행 및 결과
public class FacadePatternDemo {
public static void main(String[] args) {
Computer computer = new Computer();
computer.boot();
}
}
Reference
ko.wikipedia.org/wiki/%ED%8D%BC%EC%82%AC%EB%93%9C_%ED%8C%A8%ED%84%B4
'Design Pattern > 구조 패턴' 카테고리의 다른 글
Proxy pattern (0) | 2021.05.04 |
---|---|
Decorator Pattern (0) | 2021.05.04 |
Composite Pattern (0) | 2021.05.04 |
Bridge Pattern (0) | 2021.05.04 |
Adapter pattern (0) | 2021.05.03 |