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

福州网站建设外贸文山做网站的地方

福州网站建设外贸,文山做网站的地方,长宁区网站建设设计,wordpress 适合程序员主题23种计模式之 前言 #xff08;5#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、#xff08;11#xff09;策略模式、责任链模式、命令模式、中介者模…23种计模式之 前言 5单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、11策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 设计原则 22-Python与设计模式–状态模式 一、电梯控制器 电梯在我们周边随处可见电梯的控制逻辑中心是由电梯控制器实现的。电梯的控制逻辑即使简单点设计 把状态分成开门状态停止状态和运行状态操作分成开门、关门、运行、停止那流程也是很复杂的。 首先开门状态不能开门、运行、停止停止状态不能关门停止运行状态不能开门、关门、运行。 要用一个一个if…else…实现首先代码混乱不易维护二是不易扩展。至于各种设计原则什么的…… 那该如何实现在上边的逻辑中每个操作仅仅是一个操作状态切换与操作是分离的这也造成后来操作和 状态“相互配合”的“手忙脚乱”。如果把状态抽象成一个类每个状态为一个子类每个状态实现什么操作 不实现什么操作仅仅在这个类中具体实现就可以了。 下面我们实现这个逻辑。先实现抽象的状态类 class LiftState:def open(self):passdef close(self):passdef run(self):passdef stop(self):pass而后实现各个具体的状态类 class OpenState(LiftState):def open(self):print OPEN:The door is opened...return selfdef close(self):print OPEN:The door start to close...print OPEN:The door is closedreturn StopState()def run(self):print OPEN:Run Forbidden.return selfdef stop(self):print OPEN:Stop Forbidden.return self class RunState(LiftState):def open(self):print RUN:Open Forbidden.return selfdef close(self):print RUN:Close Forbidden.return selfdef run(self):print RUN:The lift is running...return selfdef stop(self):print RUN:The lift start to stop...print RUN:The lift stopped...return StopState() class StopState(LiftState):def open(self):print STOP:The door is opening...print STOP:The door is opened...return OpenState()def close(self):print STOP:Close Forbiddenreturn selfdef run(self):print STOP:The lift start to run...return RunState()def stop(self):print STOP:The lift is stopped.return self为在业务中调度状态转移还需要将上下文进行记录需要一个上下文的类。 class Context:lift_statedef getState(self):return self.lift_statedef setState(self,lift_state):self.lift_statelift_statedef open(self):self.setState(self.lift_state.open())def close(self):self.setState(self.lift_state.close())def run(self):self.setState(self.lift_state.run())def stop(self):self.setState(self.lift_state.stop())这样在进行电梯的调度时只需要调度Context就可以了。业务逻辑中如下所示 if __name____main__:ctx Context()ctx.setState(StopState())ctx.open()ctx.run()ctx.close()ctx.run()ctx.stop()打印如下 STOP:The door is opening… STOP:The door is opened… OPEN:Run Forbidden. OPEN:The door start to close… OPEN:The dorr is closed STOP:The lift start to run… RUN:The lift start to stop… RUN:The lift stopped… 由逻辑中可知电梯先在STOP状态然后开门开门时运行Run被禁止然后关门、运行、停止。二、状态模式 状态模式的定义如下当一个对象内在状态改变时允许其改变行为这个对象看起来像改变了其类。三、状态模式的优点和应用场景 优点 1、状态模式的优点是结构清晰相比于if…else…简约了不少 2、封装性好外部调用不必知道内部实现细节。应用场景 1、行为状态改变的场景。这点在各种控制器中非常常见同时逻辑结构为状态转移图的场景中都非常适用。 四、状态模式的缺点 1、在状态比较多时子类也会非常多不便于管理。
http://www.huolong8.cn/news/8401/

相关文章:

  • 百度热门排行榜怎么对一个网站做优化
  • wordpress还原站点山东禹城市建设局网站
  • 网站开发费用属于什么科目建立网站的步骤有哪些
  • 做招聘信息的网站有哪些wordpress 双会员系统
  • 毕业设计 网站建设选题网站设计英文翻译
  • 中国建设银行个人登录网站零食网站建设的策划书
  • 济南 网站优化网站推广问题
  • 做一个网站的费用构成郑州新闻最新消息今天
  • wordpress是什么写的兰州网站优化公司
  • 如何自己设置网站企业网站建设的优势
  • 网站关键字语法自己做国外网站买衣服
  • 邹城有做网站的吗滨州网站seo
  • 旅游区网站建设设计师网站建设
  • 大宗商品交易平台招商seo免费入门教程
  • 海外高端网站建设网站维护外包
  • 葫芦岛网站建设长治个人网站建设
  • 个人如何制作网站源码惠州网站优化建设
  • 商丘网商丘网络第一媒体深圳seo关键词优化外包公司
  • 哪些网站做的美frontpage做视频网站
  • 网站静态化的处理html源码之家
  • 东莞微网站建设服务江西宜春市城市建设档案馆网站
  • 紫网站建设谷歌找网站后台
  • 绵阳网站建设报价小程序下单
  • 免费广告推广泰州seo公司
  • 工行网站跟建设网站区别jsp网站开发需要哪些技术
  • 为审核资质帮别人做的网站上海千途网站建设
  • 大连h5网站开发求职seo
  • 深圳建站公司服务网站建设公司新员工培训ppt
  • 购物网站建设方案ppt优化wordpress访问速度
  • 网站建设方案 前台 后台产品推广ppt范例