9.python设计模式【外观模式】

  • 内容:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一个子系统更加容易使用。

  • 角色:

    • 外观(facade)
    • 子类系统(subsystem classes)
  • UML图
    9.python设计模式【外观模式】_第1张图片

  • 举个例子:
    需求:电脑由硬盘、内存、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停止运行
硬盘停止运行
内存断电

  • 优点:
    • 减少系统相互依赖
    • 提高了灵活性
    • 提高了安全性

你可能感兴趣的:(#,设计模式,设计模式,外观模式,python)