Proxy Pattern (Structural Design Pattern)
프록시 패턴은 클라이언트가 서버에 접근할 때,
중간에 프록시를 두어 클라이언트가 서버에 직접 접근하는 것이 아닌 프록시를 통해 접근하도록 하는 패턴이다.
why??
- 클라이언트가 서버에 직접 접근하는 것을 막고 싶을 때
- 클라이언트가 서버에 접근할 때, 중간에 뭔가를 처리하고 싶을 때
- 클라이언트가 서버에 접근할 때, 서버에 접근하기 전에 뭔가를 처리하고 싶을 때
Proxy Pattern 구성요소
- Subject : 클라이언트가 접근할 수 있는 인터페이스
- RealSubject : 실제 서버에 접근하는 클래스
- Proxy : 클라이언트가 접근할 때, 중간에 두는 클래스
Subject 인터페이스를 구현하고, RealSubject를 가지고 있다 클라이언트가 Proxy를 통해 접근하면, Proxy는 RealSubject를 통해 서버에 접근한다.
Proxy Pattern 예시
class Animal: # Subject
def speak(self):
pass
class Cat(Animal): # RealSubject
def speak(self):
print("meow")
# 직접 접근
kitty = Cat()
kitty.speak()
class CatProxy: # Proxy
def __init__(self, cat:Cat):
self.cat = cat
def speak(self):
print("before speak")
self.cat.speak()
print("after speak")
# 프록시를 통해 접근
kitty_proxy = CatProxy(kitty)
kitty_proxy.speak()
728x90
반응형
'Dev > DesignPattern' 카테고리의 다른 글
[Design Pattern]Decorator Pattern (0) | 2023.04.26 |
---|---|
[Design Pattern]Facade Pattern (0) | 2023.04.26 |
[DesignPattern] Adapter Pattern (0) | 2023.04.26 |
[DesignPattern] Prototype Pattern (0) | 2023.04.25 |
[DesignPattern] Singleton Pattern (0) | 2023.04.25 |