Exist Technote
[Python] Facade Pattern (퍼사드 패턴) 본문
Facade Pattern이란?
- 서브 시스템의 인터페이스 집합에 대하여 하나의 통합된 인터페이스를 제공하는 패턴.
- 서브시스템을 좀 더 사용하기 편하게 만드는 상위 수준의 인터페이스를 정의한다.
예제
# https://github.com/faif/python-patterns/blob/master/patterns/structural/facade.py
class CPU:
def freeze(self):
print("Freezing processor.")
def jump(self, position):
print("Jumping to:", position)
def execute(self):
print("Executing.")
class Memory:
def load(self, position, data):
print("Loading from {0} data: '{1}'.".format(position, data))
class SolidStateDrive:
def read(self, lba, size):
return "Some data from sector {0} with size {1}".format(lba, size)
class ComputerFacade:
def __init__(self):
self.cpu = CPU()
self.memory = Memory()
self.ssd = SolidStateDrive()
# 상위 인터페이스
def start(self):
self.cpu.freeze()
self.memory.load("0x00", self.ssd.read("100", "1024"))
self.cpu.jump("0x00")
self.cpu.execute()
# 쉽고 단순한 인터페이스를 제공.
if __name__ == "__main__":
computer_facade = ComputerFacade()
computer_facade.start()
여담
- 따로 패턴으로 소개하지 않아도 누구나 해당 패턴을 자연스럽게 사용했을 거라고 생각한다.
'Design Pattern > Structural' 카테고리의 다른 글
[Python] Proxy Pattern (프록시 패턴) (0) | 2020.10.09 |
---|---|
[Python] Flyweight Pattern (플라이웨이트) (0) | 2020.10.07 |
[Python] Composite Pattern (복합체 패턴) (0) | 2020.10.06 |
[Python] Adapter Pattern (어댑터 패턴) (0) | 2020.10.05 |
Comments