#!/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()