My Playground


재미있게 놀다가세요~
  • Total5,512
  • Today12
  • Yesterday9

Article Category

전체보기 (22)
book (2)
study (3)
music (2)
photography (15)

Calendar

«   2008/10   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

* Proxy Pattern (Surrogate Pattern)

: 객체를 사용하는 시점까지 생성과 초기화에 드는 비용 및 시간을 절약하기위해, 다른 객체에 접근하여 중간 대리 역할을 하는 객체를 만드는 패턴.  객체의 생성이 완료되기 이전에 이 객체를 가상으로 사용할 수 있는 방법을 제공하여, 실제 객체가 필요한 경우만 proxy를 생성하여 부하를 최소화 하는데, 외부에서는 실행되는 진짜 객체가 보이지 않는다.

 객체의 생성이 완료되기 이전에 이 객체를 가상으로 사용할 수 있는 방법을 제공한다.

Image load 전에 image정보를 사용방법을 제공하며, 실제 그 이미지가 쓰일 때 loading 한다.

 

< 적용 영역 및 결과 >

* Remote Proxy(원격 프록시) : 서로 다른 주소 공간에 존재하는 객체에 대한 로컬의 대리자(local representative)를 제공.

요청 메시지와 Argument를 인코딩하여 이를 다른 주소 공간에 있는 실제 대상에게 전달한다.  

-> 객체의 원격지 존재여부를 숨길 수 있다.

* Virtual Proxy(가상 프록시) : 많은 비용이 요구되는 객체를 생성하는 경우에 사용. -> 성능 최적화

* Protection Proxy(보호 프록시) : 보호가 요구되는 객체 자체에 대한 실제 접근을 제어하고 대리자를 통해 접근 가능한

정도만 노출. (객체별 접근 권한이 다를 때 유용)

* Smart Reference(스마트 참조) : 단순한 접근 이외의 부가적인 작업을 수행할 필요가 있을 때 사용. (다른 객체가 사용하

지 못하도록 접근 금지 장치를 한다. )

[보호, 스마트]-> 객체에 접근할 때, 수반되는 부가적인 작업이 수행되는 것을 가능하게 해준다.


 

                    
                     Proxy: 실제로 참조할 대상에 대한 참조자를 관리한다. Subject
와 동일한 인터페이스를 제공하여
                             
실제 대상을 대체할 수 있어야 한다. 실제 대상에 대한 접근을 제어하고 실제 대상의 생성과
                              삭제를 책임진다
.

                    
Subject: RealSubject Proxy 에 공통적인 인터페이스를 정의하고 있어, RealSubject 가 요청되는
                              곳에 Proxy 를 사용할 수 있게 한다.

                     RealSubject: 프록시가 대표하는 실제 객체이다.


* proxy의 instance 구조


 

 

* 프록시 패턴 vs 데코레이터 패턴

프록시(Proxy) 패턴은 데코레이터(Decorator) 패턴과 투과적이라는 면에서 유사한 구조를 가지고 있지만, 이 두 가지 패턴은 서로 다른 목적을 가지고 있다. Decorator는 새로운 기능 추가를 쉽게 하는 것이 그 주요 목적인 반면, proxy의 경우 기존에 구현되어 있는 기능의 효율성, 원격 제어, 접근 권한 제어 등을 그 목적으로 한다. , 결과적으로 보면 둘의 차이는 어디에서 진짜 객체가 생성되는가의 문제로 볼 수 있다.

 

저작자 표시 비영리 변경 금지
Trackback 0 and Comment 0
prev Prev : [1] : [2] : [3] : [4] : [5] ... : [22] : Next next