1 개요[ | ]
- 단순한 창구 역할
- 단순화된 인터페이스를 제공하는 디자인 패턴
- 복잡한 아키텍처를 숨기고 간략한 인터페이스로 접근·사용하도록 추상화하는 디자인 패턴
- 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체
- 서브시스템과 클라이언트 사이를 최대한 분리(de-couple)한다.
2 예제[ | ]
Java
Copy
// 복잡한 부분
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) {
...
}
}
// 퍼사드
class Computer {
public void startComputer() {
cpu.freeze();
memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
cpu.jump(BOOT_ADDRESS);
cpu.execute();
}
}
// 클라이언트
class Main {
public static void main(String[] args) throws ParseException {
Computer facade = /* grab a facade instance */;
facade.startComputer();
}
}
3 같이 보기[ | ]
4 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.