Python设计模8(外观模式-结构型)
外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式.
比如你回家呼唤小爱同学。窗帘、灯、空气净化器就都开了,这就是一种外观模式应用
1、实例
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class AlarmSensor: def run(self): print("Alarm Ring...") class WaterSprinker: def run(self): print("Spray Water...") class EmergencyDialer: def run(self): print("Dial 119...")
class EmergencyFacade: """ 外观类中封装了对子系统的操作 """ def __init__(self): self.alarm_sensor=AlarmSensor() self.water_sprinker=WaterSprinker() self.emergency_dialer=EmergencyDialer() def runAll(self): self.alarm_sensor.run() self.water_sprinker.run() self.emergency_dialer.run()
if __name__=="__main__": emergency_facade=EmergencyFacade() emergency_facade.runAll()
|
这样封装通过客户端直接操作对象,可以与复杂的子系统隔离开
2、应用场景
待补充