구조 디자인 패턴은 객체와 클래스가 병합해 더 큰 구조를 만든다.
객체의 관계를 더 쉽게 식별할 수 있는 디자인 패턴이다.
클래스 패턴(The Class Pattern)은 상속을 통해 추상화해 인터페이스를 제공하는 반면에 객체 패턴은 한 개의 객체를 더 큰 객체로 확장시킨디. 구조 패턴은 두 패턴을 합친 형태이다.
시나리오 : 결혼식을 준비하는 당신
# Sub System
class Hotelier(object):
def __init__(self):
print("Arraging the Hotel for Marrie")
def bookHotel(self):
print("Registered the Booking")
class Florist(object):
def __init__(self):
print("Arring the Florist")
def arrangeFlorist(self):
print("Arrange Florist")
# 퍼사드
class EventManager(object):
def __init__(self):
print("Event Manager")
def arrage(self):
self.hotelier = Hotelier()
self.hotelier.bookHotel()
self.florist = Florist()
self.florist.arrangeFlorist()
# 클라이언트
class You(object):
def __init__(self):
print("You!!")
def askEventManager(self):
em = EventManager()
em.arrage()
you = You()
you.askEventManager()