티스토리 뷰
퍼사드 패턴(Facade Pattern)
- 하나의 인터페이스에서 복잡한 서브시스템을 통합하여 동작시킬 수 있도록 제공해주는 패턴
- 퍼사드 객체가 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공한다.
- 실제 사용 예 : Spring에서 Controller
구조
예제 소스 코드
/* Complex parts */
class CPU {
public void freeze() { ... }
public void jump(long position) { ... }
public void execute() { ... }
}
class Memory {
public void load(long position, byte[] data) {
...
}
}
class HardDrive {
public byte[] read(long lba, int size) {
...
}
}
/* Façade */
class Computer {
public void startComputer() {
CPU cpu = new CPU();
Memory memory = new Memory();
HardDrive hardDrive = new HardDrive();
cpu.freeze();
memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
cpu.jump(BOOT_ADDRESS);
cpu.execute();
}
}
/* Client */
class You {
public static void main(String[] args) throws ParseException {
Computer facade = /* grab a facade instance */;
facade.startComputer();
}
}
참고
'Design Pattern' 카테고리의 다른 글
우아한테크캠프 Pro 5기 - 정적 팩토리 메서드와 인스턴스 캐싱 (0) | 2022.11.11 |
---|---|
우아한테크캠프 Pro 5기 - 한 줄에 점을 하나만 찍는다(디미터의 법칙) (0) | 2022.11.09 |
우아한테크캠프 Pro 5기 프리코스 - 일급 컬렉션(First Class Collection)과 원시값, 문자열 포장 (0) | 2022.10.12 |
댓글