💻 개발IT/Design Patterns
5. Structural 패턴 - Proxy Pattern
초겨울
2022. 7. 20. 00:28
Proxy Pattern
object에 대한 접근을 제어할 수 있는 대리인 혹은 placeholder
사용하는 경우
- object에 대한 접근 제어가 필요할 경우
- object 접근할 때 추가 기능이 필요한 경우
class diagram
클라이언트가 DoAction() 메소드를 요청하면 Proxy가 대신 RealSubject의 DoAction() method를 호출하여 리턴값을 클라이언트에게 전달
- Proxy : RealSubject에 접근할 수 있는 reference 유지 관리. Proxy가 RealSubject로 대체될 수 있도록 Subject와 동일한 인터페이스 제공. RealSubject에 대한 접근을 제어하고 생성 삭제 담당
- Subject : Proxy 및 RealSubject의 공통 인터페이스를 정의하여 RealSubject가 예상되는 모든 위치에서 Proxy를 사용할 수 있도록 함
- RealSubject : Proxy가 나타내는 실제 Object 정의
Proxy 종류
- remote proxy : request와 해당 파라미터를 인코딩하고, 인코딩된 request를 다른 address space로 전송하는 역할
- virtual proxy : RealSubject에 대한 추가 정보를 캐싱하여 접근을 연기
- protection proxy : 호출자가 request를 수행하는 데 필요한 접근 권한을 가지고 있는지 확인
vs. Decorator Pattern
- Proxy와 Decorator Pattern 구조 유사
- Proxy는 Real Class에 대한 접근 제어 역할을 하고, Decorator는 Real Class에 기능을 추가하는 목적
vs. Adapter Pattern
- Proxy는 동일한 Interface 제공, Adapter는 대상에 따라 다른 Interface 제공
반응형