ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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();
            }
    }

     

     

    출처

    나무위키

    https://keichee.tistory.com/183

    반응형

    '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
Designed by Tistory.