设计模式:外观 模式(结构型)

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
''' 
@Author: Victor
@Date: 2020/8/20
@function: ''
'''


# 外观模式属于结构型模式(另外两种是创建型比如工厂和行为型比如策略)
# 外观模式的核心在于将复杂的内部实现包装起来,只向外界提供简单的调用接口。
# 类似现实世界中的电脑,开机按钮可以说就是一个简单的调用接口,帮用户屏蔽了复杂的内部电路。
# 类似只能家居一个遥控器就关闭了房间里的各种灯、空凋、加湿器等等。

# 假设我们需要将计算机抽象,并且这个计算机启动仅需两步:调用BIOS和内核,关闭同样只是顺序相反。
# 那么首先我们声明一个 Computer 类,它只提供 start 和 stop 方法供外部调用。
# 当然实际上电脑的开机和关机肯定不止这些步骤,假设有很多很多步,那么这时候的外观模式显得更加重要了。
# 只需要调用 Computer的 start 和 stop 方法即可完成开机和关机的功能,而不需要去调用某些方法去开启各个系统,比如文件系统、进程服务系统等。

class Bios(object):
    def __init__(self):
        pass

    def start(self):
        print('bios start ok')

    def stop(self):
        print('bios stop ok')


class Kernal(object):
    def __init__(self):
        pass

    def start(self):
        print('kernal start ok')

    def stop(self):
        print('kernal stop ok')


class Computer(object):
    def __init__(self):
        self.bios = Bios()
        self.kernal = Kernal()

    def start(self):
        for i in (self.bios, self.kernal):
            i.start()

    def stop(self):
        for i in (self.kernal, self.bios):
            i.stop()


if __name__ == '__main__':
    c = Computer()
    c.stop()

  

posted @ 2020-08-20 16:13  Adamanter  阅读(79)  评论(0)    收藏  举报