-
内容:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一个子系统更加容易使用。
-
角色:
- 外观(facade)
- 子类系统(subsystem classes)
-
UML图
-
举个例子:
需求:电脑由硬盘、内存、cpu组成,现在只需要按开机键所有组件都要开机,按关机键所有组件都要关机。
class CPU:
def run(self):
print("CPU开始运行")
def stop(self):
print("CPU停止运行")
class Disk:
def run(self):
print("硬盘开始运行")
def stop(self):
print("硬盘停止运行")
class Memory:
def run(self):
print("内存通电")
def stop(self):
print("内存断电")
# facade
class Computer:
def __init__(self):
self.cpu=CPU()
self.disk=Disk()
self.memory=Memory()
def run(self):
self.cpu.run()
self.disk.run()
self.memory.run()
def stop(self):
self.cpu.stop()
self.disk.stop()
self.memory.stop()
# Client
computer=Computer()
computer.run()
computer.stop()
输出结果:
CPU开始运行
硬盘开始运行
内存通电
CPU停止运行
硬盘停止运行
内存断电
- 优点:
- 减少系统相互依赖
- 提高了灵活性
- 提高了安全性