Proxy 패턴
- 대리인
- 본인을 대신해서 일을 처리하는 사람..
예제 프로그램을 보니 간단하다.
Proxy(대리인 역할)이 할 수 있는 역할은 다 하고,
대리인이 하기 어려운 무거운 일을 호출할 때까지는 최대한 지연시키는 방식인 듯
Proxy와 Real Subject를 분리하는 이유?
디자인패턴의 이유는 다 똑같다. 추후 수정 및 유지보수를 수월하게 하기 위해서..
연습문제
21-1) 예제 프로그램에서 PrinterProxy 클래스는 Printer 클래스를 알고있습니다. 즉, PrinterProxy 클래스 안에 Printer라는 클래스 이름이 직접 쓰여 있습니다. PrinterProxy 클래스가 Printer 클래스를 '몰라도 상관없도록' 수정하십시오.
Printable 인터페이스로 인스턴스를 아래와 같이 생성한다.
real = (Printable)Class.forName(classname).newInstance();
21-2) PrinterProxy 클래스에서는 setPrinterName 메소드와 realize 메소드가 synchronized 키워드로 되어있습니다. 이유는?
복수의 스레드에서 호출되었을 때에 name에 차질이 생기지 않기 위해서.
'JAVA' 카테고리의 다른 글
[디자인패턴] Visitor 패턴 (0) | 2022.06.16 |
---|---|
[디자인패턴] Command 패턴 (0) | 2022.06.16 |
[디자인패턴] State 패턴 (0) | 2022.05.25 |
[디자인 패턴] Observer 패턴 (관찰자) (0) | 2022.05.18 |
[디자인패턴] façade 패턴 (0) | 2022.05.12 |