JAVA

[디자인패턴] Proxy 패턴

gom1n 2022. 6. 2. 15:20

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