1.定义
1 | 2 |
---|---|
定义 | 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 |
角色 | 外观(facade): 子系统类(subsystem class) : |
优点 | 1.减少系统相互依赖,子系统相对独立 2.提高灵活性. 3.提高了安全性,为复杂的模块或子系统提供外界访问的模块,预防低水平人员带来的风险 |
缺点 | 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。 |
应用场景 | 1.去医院看病,可能要去挂号,门诊,划价,取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便. 2.JAVA 的三层开发模式 |
2.示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class Cpu:
@staticmethod
def run():
print("CPU开始运行")
@staticmethod
def stop():
print("CPU停止运行")
class Disk:
@staticmethod
def run():
print("硬盘开始运行")
@staticmethod
def stop():
print("硬盘停止运行")
class Memory:
@staticmethod
def run():
print("硬盘开始运行")
@staticmethod
def stop():
print("硬盘停止运行")
# Facade
class Computer:
def __int__(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()
if __name__ == '__main__':
computer = Computer()
computer.run()
computer.stop()