Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.
Facade là một mẫu thiết kế cấu trúc (structural design pattern) cung cấp một giao diện đơn giản hóa cho một tập hợp phức tạp nào đó.
Ví dụ: Bạn có 1 ngôi nhà, bạn muốn mỗi đêm lúc 11h bạn chỉ cần nhấn 1 nút là điện phòng khách tắt, cửa thông minh tự khóa, điện thoại chuyển sang chế độ im lặng.
class CellPhone:
def silent_on(self):
print("CellPhone: silent_on")
def silent_off(self):
print("CellPhone: silent_off")
class LivingRoomLight:
def off(self):
print("LivingRoomLight off")
def on(self):
print("LivingRoomLight on")
class SmartDoor:
def lock(self):
print("SmartDoor: lock")
def open(self):
print("SmartDoor: open")
# Facade class
class Facade:
def __init__(self):
self.cellphone= CellPhone()
self.light= LivingRoomLight()
self.door= SmartDoor()
def go_to_sleep(self):
self.cellphone.silent_on()
self.light.off()
self.door.lock()
# Client code
facade = Facade()
facade.go_to_sleep()
Article Categories:
dev