Facade란?
건물의 외간이란 뜻이다.
Facade Pattern
다른 인터페이스들을 통합하여 단순화 시킬 때 사용하는 패턴이다.
아래는 컴퓨터가 켜질 때 필요한 동작들을 하나의 인터페이스에 정의한 예제이다.
/* 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(); } }
어댑터 패턴과 데코레이터 패턴과 비슷한거 같은데
다음 포스팅에 정리해보겠습니다.
'Java' 카테고리의 다른 글
디자인 패턴4 - 템플릿 메소드 패턴이란(Template method pattern) (0) | 2019.03.08 |
---|---|
디자인 패턴2 - 어댑터 패턴(Adapter Pattern) (0) | 2019.03.04 |
NIO 제대로 파해쳐보자 (0) | 2017.12.05 |
JAVA File I/O에 관하여 (0) | 2017.11.28 |
#java.util.ConcurrentModificationException 이슈 (0) | 2017.10.30 |