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 제공
반응형
'💻 개발IT > Design Patterns' 카테고리의 다른 글
3. Behavior 패턴 - Chain-of-Responsibility Pattern (0) | 2022.07.20 |
---|---|
4. Creational 패턴 - Prototype Pattern (0) | 2022.07.19 |
5. Structural 패턴 - Facade Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Visitor Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Command Pattern (0) | 2022.07.19 |
6. Compound 패턴 - MVC Pattern (0) | 2022.03.12 |
5. Structural 패턴 - Bridge Pattern (0) | 2022.03.10 |
5. Structural 패턴 - Composite Pattern (0) | 2022.03.09 |