当前位置: 首页 > wzjs >正文

网站正在建设中网页事业单位网站建设

网站正在建设中网页,事业单位网站建设,php7 wordpress 无法安装,营销网络的建设是什么意思23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…

23种计模式之 前言 +(5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、+(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、+(11)策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 + 设计原则

8-Python与设计模式–门面模式

一、火警报警器(1)

假设有一组火警报警系统,由三个子元件构成:一个警报器,一个喷水器,
一个自动拨打电话的装置。其抽象如下:

class AlarmSensor:def run(self):print "Alarm Ring..."
class WaterSprinker:def run(self):print "Spray Water..."
class EmergencyDialer:def run(self):print "Dial 119..."

在业务中如果需要将三个部件启动,例如,如果有一个烟雾传感器,检测到了烟雾。
在业务环境中需要做如下操作:

if __name__=="__main__":alarm_sensor=AlarmSensor()water_sprinker=WaterSprinker()emergency_dialer=EmergencyDialer()alarm_sensor.run()water_sprinker.run()emergency_dialer.run()

但如果在多个业务场景中需要启动三个部件,怎么办?Ctrl+C加上Ctrl+V么?

当然可以这样,但作为码农的基本修养之一,减少重复代码是应该会被很轻易想到的方法。 这样,需要将其进行封装,在设计模式中,被封装成的新对象,叫做门面。
门面构建如下:

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()

打印如下:

Alarm Ring… Spray Water… Dial 119…

二、门面模式

门面模式也叫外观模式,定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。
门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重“统一的对象”,也就是提供一个访问
子系统的接口。门面模式与之前说过的模板模式有类似的地方,都是对一些需要重复方法的封装。
但从本质上来说,是不同的。模板模式是对类本身的方法的封装,其被封装的方法也可以单独使用;
而门面模式,是对子系统的封装,其被封装的接口理论上是不会被单独提出来用的。

三、门面模式的优点和使用场景

优点:
1、减少了系统之间的相互依赖,提高了系统的灵活;
2、提高了整体系统的安全性:封装起的系统对外的接口才可以用,隐藏了很多内部接口细节,若方法不允许使用,则在门面中可以进行灵活控制。使用场景:
1、为一个复杂的子系统提供一个外界访问的接口。这类例子是生活还是蛮常见的,例如电视遥控器的抽象模型,电信运营商的用户交互设备等;
2、需要简化操作界面时。例如常见的扁平化系统操作界面等,在生活中和工业中都很常见。

四、门面模式的缺点

1、门面模式的缺点在于,不符合开闭原则,一旦系统成形后需要修改,几乎只能重写门面代码,
这比继承或者覆写等方式,或者其它一些符合开闭原则的模式风险都会大一些。

文章转载自:

http://qMGHdGel.hcqpc.cn
http://Dd8lHimm.hcqpc.cn
http://bmvpNWH3.hcqpc.cn
http://kyrOFoNI.hcqpc.cn
http://02kAtlcr.hcqpc.cn
http://TmP1Bq0x.hcqpc.cn
http://1BeHbvL8.hcqpc.cn
http://1PE6ZEbJ.hcqpc.cn
http://uBcCxe7i.hcqpc.cn
http://jx1aoXhw.hcqpc.cn
http://9PPoaBeX.hcqpc.cn
http://pFgs1j8X.hcqpc.cn
http://x3BikdFh.hcqpc.cn
http://828Djtua.hcqpc.cn
http://HLWqZwlM.hcqpc.cn
http://cTegVVuD.hcqpc.cn
http://gKBpChtL.hcqpc.cn
http://WGRPfamv.hcqpc.cn
http://BF0Py0C5.hcqpc.cn
http://l1WLEsxG.hcqpc.cn
http://1ZjPhtmf.hcqpc.cn
http://jwNmgsjT.hcqpc.cn
http://l1s0ldN1.hcqpc.cn
http://u8KMqE1J.hcqpc.cn
http://Y8lTUopG.hcqpc.cn
http://zMxnIuAg.hcqpc.cn
http://6WUFAlLG.hcqpc.cn
http://AP8zPRno.hcqpc.cn
http://fLtOfKrN.hcqpc.cn
http://BAVRcA5o.hcqpc.cn
http://www.dtcms.com/wzjs/639001.html

相关文章:

  • 郑州公司建站搭建简单的个人主页网站制作
  • 网站打不开如何解决什么是网络设计方案
  • 做电影网站需要那种服务器做一个商城网站需要多少钱
  • 用php做视频网站的步骤ie打不开建设企业网站
  • 网站建设与管理 自考济南中建设计院网站
  • 查询网站的外链word可以制作网页吗
  • 国外网站怎么上郑州北环附近网站建设
  • 上海做原创网站济南平面设计公司前十名
  • 网站建设发展制度做花茶的网站
  • html网站开发教程恩施有做网站的吗
  • aws的efs可以做网站的什么手机网站制作天强科技
  • 徐州地区网站建设wordpress 文件权限
  • 网站的c4d动画是怎么做的红河州建设局网站
  • 个人网站模板html免费北京网站建设公司排行榜
  • 福州网站设计哪里比较好网站功能设计的内容
  • 信用湘潭网站快手淘客网站是怎么做的
  • 浙江做网站公司有哪些php 企业 网站
  • 一个网站2级域名多湘潭网站建设企业
  • apache 搭建多个网站企企业业网网站站建建设设
  • 做物流的在什么网站找客户呢网站用户粘度
  • wordpress开启多站点功线上运营推广工作内容
  • 公司网站优点专业手机移动网站设计
  • 常州市住房建设局网站网页设计制作表格代码
  • 建造师个人业绩查询网站快速优化排名免费
  • 网站建设公司专业网站科技开发二维码制作网站
  • 行业协会网站建设广东营销型网站建设多少钱
  • 济南行知网站制作南阳网站制作价格
  • 为什么自己做的网站别人打不开女生学ui设计难吗
  • 报名网站制作客户管理系统内容
  • 厅网站建设项目背景网站进入沙盒的表现