做网站需要哪方面的编程,做电影收费网站,全球速卖通买家app,wordpress菜单新窗口打开外观设计模式在平常的代码编写中#xff0c;会经常使用。在平常代码的编写时#xff0c;即使程序员没有从标准上认识过外观设计模式#xff0c;但在开发的过程中#xff0c;也会从代码的多方面角度考虑#xff0c;从而编写了符合外观设计模式的代码。
很多程序员都有这种…外观设计模式在平常的代码编写中会经常使用。在平常代码的编写时即使程序员没有从标准上认识过外观设计模式但在开发的过程中也会从代码的多方面角度考虑从而编写了符合外观设计模式的代码。
很多程序员都有这种感觉在学习一些自认为没有了解的技术时发现自己已经接触过了一部分内容这一部分内容有标准上书面上有着准确的定义。
拥有丰富项目经验的程序员在考虑了项目整体代码架构、性能优化等方面后编写的程序将和一些标准定义的技术发生雷同。
学习设计模式是促进相关技术的增长但是在没有丰富的项目经验前很大一部分学习了设计模式的开发者将不懂如何使用设计模式融入到自己的代码编写之中。所以我写的设计模式文章大多数只是简单的实现了设计模式并不会把多余的内容加入到实现之中。因为我的观点是“徐徐渐进在有了项目经验后在进一步考虑项目的优化迭代”。
回归正题开始讲解外观设计模式。 外观设计模式简单的来说是通过编写一个简单的接口不暴露系统的复杂性增加这个系统的易用性屏蔽内部实现。 在日常开发中屏蔽系统内部实现是经常做的事情所以对于一部分开发者来说外观设计模式是在项目中经常使用的技术。接下来就来看一下外观设计模式的基本实现。
例通过一个按钮控制空调的启动。 分析空调的启动可以简要的分为以下步骤点击按钮——收到点击按钮的信号——开启制冷——开启温度检测自动调温。
我们首先新建一个制冷器与温度计类模拟制冷器与温度计的启动
#制冷器
class Refrigerator():def start(self):print(制冷器启动...)def stop(self):print(制冷器停止...)
#温度计
class Thermometer():def start(self):print(温度计启动...)def stop(self):print(温度计停止...)常规情况下我们可以直接调用制冷器后再调用温度计这个时候就比较麻烦内部系统暴露出来使用极其繁琐。 接下来新建一个空调类用以统一调用这两个类实现制冷的开始。
#空调类
class AirConditioner():#初始化def __init__(self):self.refrigeratorRefrigerator()self.thermometerThermometer()#开始键按下 def startBtnClick():print(空调启动键按下...)self.start()#停止键按下 def stopBtnClick():print(空调关闭键按下...)self.stop()#开始方法 def start(self):print(空调启动...)self.refrigerator.start()self.thermometer.start()#停止方法 def stop(self):print(空调停止...)self.refrigerator.stop()self.thermometer.stop()以上的空调类中初始化中实例化了制冷器类与温度计检测类在开始按钮点击的方法中启动了开始方法开始方法打开了制冷器与温度检测同理停止方法也是如此。调用方法如下
acAirConditioner()
ac.start()新建空调后开始即可查看运行效果 最后查看完整的代码
#空调类
class AirConditioner():#初始化def __init__(self):self.refrigeratorRefrigerator()self.thermometerThermometer()#开始键按下 def startBtnClick():print(空调启动键按下...)self.start()#停止键按下 def stopBtnClick():print(空调关闭键按下...)self.stop()#开始方法 def start(self):print(空调启动...)self.refrigerator.start()self.thermometer.start()#停止方法 def stop(self):print(空调停止...)self.refrigerator.stop()self.thermometer.stop()#制冷器
class Refrigerator():def start(self):print(制冷器启动...)def stop(self):print(制冷器停止...)
#温度计
class Thermometer():def start(self):print(温度计启动...)def stop(self):print(温度计停止...)acAirConditioner()
ac.start()