-
Session Facade 패턴Java & 배경지식/패턴 2020. 2. 10. 17:00반응형
Session Facade 패턴
- 소트프웨어 라이브러리를 쉽게 사용 및 피해할수 있게 해준다.
- 공통적인 작업에 대해 간편한 메소드들을 제공
- 퍼사드 라이브러리를 사용하는 코드들을 좀 더 읽기 쉽게 해준다.
- 라이브러리 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 준다.
- 대부분의 바깥쪽의 코드가 퍼사드를 이용하기 때문에 시스템을 개발하는데 있어 유연성이 향상
- 좋게 작성하지 않은 API의 집합을 하나의 좋게 작성되 API로 감싸준다.
- 위의 역활들을 한마디로 말하면 서브시스템 내부에 있는 클래스에 접근할 수 있는 하나의 통합된 인터페이스를 제공
아래 Java 코드 예제는 사용자(you)가 퍼사드(컴퓨터)를 통해 컴퓨터 내부의 부품(CPU, HDD) 등을 접근한다는 내용의 추상적인 예제이다. /* 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 & 배경지식 > 패턴' 카테고리의 다른 글
프록시 패턴 - 백기선 (0) 2020.06.14 프록시 패턴 (0) 2020.02.17 데코레이터 패턴 (0) 2020.02.17 Strategy Pattern(전략패턴) (0) 2020.02.13 Transfer Object 패턴(Value Object) (0) 2020.02.10