Facade Pattern(Structural Design Pattern)
퍼사드 패턴이란 (StageManager)
- 퍼사드 패턴은 서브시스템을 감싸는 인터페이스를 제공하여 서브시스템을 사용하기 쉽게 만드는 패턴이다.
Why?
프로그램이 복잡해지고, 해당 과정들이 엉키는 경우가 있을 수 있다, 이때 이 프로세스 과정을 관리하기위해 실행되는 과정을
인터페이스로 제공하는 패턴이다.
진짜 쉽게 말하면, 실제 프로세스를 단순히 관리하기 위한 패턴이다.
따라서, 퍼사드 패턴을 적용하기 위해서는 프로세스의 과정을 명확 하게 알고 있어야한다.
Facade Pattern 구성요소
- Facade : 클라이언트가 접근할 수 있는 인터페이스
- SubSystem : 실제 서버에 접근하는 클래스
- Client : Facade를 통해 서버에 접근하는 클래스
Facade Pattern 예시
class Stage1: # SubSystem
def ignite(self):
print('1st stage ignition')
def liftOff(self):
print('1st stage liftOff')
def eject(self):
print('1st stage ejection')
def comeBack(self):
print('1st stage return')
class Stage2: # SubSystem
def ignite(self):
print('2nd stage ignition')
def eject(self):
print('2nd stage ignition')
class Capsule: # SubSystem
def ignite(self):
print('capsule ignition')
def landing(self):
print('capsule landing/deploy')
class Rocket: # Facade
def __init__(self):
self.stage1 = Stage1()
self.stage2 = Stage2()
self.capsule = Capsule()
def launch(self):
self.stage1.ignite()
self.stage1.liftOff()
self.stage1.eject()
self.stage2.ignite()
self.stage1.comeBack()
self.stage2.eject()
self.capsule.ignite()
self.capsule.landing()
# Client
rocket = Rocket()
rocket.launch()
728x90
반응형
'Dev > DesignPattern' 카테고리의 다른 글
[Design Pattern]Bridge Pattern (0) | 2023.04.26 |
---|---|
[Design Pattern]Decorator Pattern (0) | 2023.04.26 |
[Design Pattern] Proxy Pattern (0) | 2023.04.26 |
[DesignPattern] Adapter Pattern (0) | 2023.04.26 |
[DesignPattern] Prototype Pattern (0) | 2023.04.25 |