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

企业网站建设实战教程wordpress墨客吧

企业网站建设实战教程,wordpress墨客吧,网站建设周记,咸阳做网站公司电话23种计模式之 前言 #xff08;5#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、#xff08;11#xff09;策略模式、责任链模式、命令模式、中介者模…23种计模式之 前言 5单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、11策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 设计原则 15-Python与设计模式–中介者模式 一、仓储管理系统 有一个手机仓储管理系统使用者有三方销售、仓库管理员、采购。需求是销售一旦达成订单销售人员会 通过系统的销售子系统部分通知仓储子系统仓储子系统会将可出仓手机数量减少同时通知采购管理子系统当 前销售订单仓储子系统的库存到达阈值以下会通知销售子系统和采购子系统并督促采购子系统采购 采购完成后采购人员会把采购信息填入采购子系统采购子系统会通知销售子系统采购完成 并通知仓库子系统增加库存。从需求描述来看每个子系统都和其它子系统有所交流在设计系统时如果直接在一个子系统中集成对另两个 子系统的操作一是耦合太大二是不易扩展。为解决这类问题我们需要引入一个新的角色-中介者-来将 “网状结构”精简为“星形结构”。为充分说明设计模式某些系统细节暂时不考虑例如仓库满了怎么办该 怎么设计。类似业务性的内容暂时不考虑首先构造三个子系统即三个类在中介者模式中这些类叫做同事些 class colleague():mediator Nonedef __init__(self,mediator):self.mediator mediator class purchaseColleague(colleague):def buyStuff(self,num):print PURCHASE:Bought %s%numself.mediator.execute(buy,num)def getNotice(self,content):print PURCHASE:Get Notice--%s%content class warehouseColleague(colleague):total0threshold100def setThreshold(self,threshold):self.thresholdthresholddef isEnough(self):if self.totalself.threshold:print WAREHOUSE:Warning...Stock is low... self.mediator.execute(warning,self.total)return Falseelse:return Truedef inc(self,num):self.totalnumprint WAREHOUSE:Increase %s%numself.mediator.execute(increase,num)self.isEnough()def dec(self,num):if numself.total:print WAREHOUSE:Error...Stock is not enoughelse:self.total-numprint WAREHOUSE:Decrease %s%numself.mediator.execute(decrease,num)self.isEnough() class salesColleague(colleague):def sellStuff(self,num):print SALES:Sell %s%numself.mediator.execute(sell,num)def getNotice(self, content):print SALES:Get Notice--%s % content当各个类在初始时都会指定一个中介者而各个类在有变动时也会通知中介者由中介者协调各个类的操作。 中介者实现如下 class abstractMediator():purchasesaleswarehousedef setPurchase(self,purchase):self.purchasepurchasedef setWarehouse(self,warehouse):self.warehousewarehousedef setSales(self,sales):self.salessalesdef execute(self,content,num):pass class stockMediator(abstractMediator):def execute(self,content,num):print MEDIATOR:Get Info--%s%contentif contentbuy:self.warehouse.inc(num)self.sales.getNotice(Bought %s%num)elif contentincrease:self.sales.getNotice(Inc %s%num)self.purchase.getNotice(Inc %s%num)elif contentdecrease:self.sales.getNotice(Dec %s%num)self.purchase.getNotice(Dec %s%num)elif contentwarning:self.sales.getNotice(Stock is low.%s Left.%num)self.purchase.getNotice(Stock is low. Please Buy More!!! %s Left%num)elif contentsell:self.warehouse.dec(num)self.purchase.getNotice(Sold %s%num)else:pass中介者模式中的execute是最重要的方法它根据同事类传递的信息直接协调各个同事的工作。 在场景类中设置仓储阈值为200先采购300再卖出120实现如下 if __name____main__:mobile_mediatorstockMediator()#先配置mobile_purchasepurchaseColleague(mobile_mediator)mobile_warehousewarehouseColleague(mobile_mediator)mobile_salessalesColleague(mobile_mediator)mobile_mediator.setPurchase(mobile_purchase)mobile_mediator.setWarehouse(mobile_warehouse)mobile_mediator.setSales(mobile_sales)mobile_warehouse.setThreshold(200)mobile_purchase.buyStuff(300)mobile_sales.sellStuff(120) 打印结果如下 PURCHASE:Bought 300 MEDIATOR:Get Info–buy WAREHOUSE:Increase 300 MEDIATOR:Get Info–increase SALES:Get Notice–Inc 300 PURCHASE:Get Notice–Inc 300 SALES:Get Notice–Bought 300 SALES:Sell 120 MEDIATOR:Get Info–sell WAREHOUSE:Decrease 120 MEDIATOR:Get Info–decrease SALES:Get Notice–Dec 120 PURCHASE:Get Notice–Dec 120 WAREHOUSE:Warning…Stock is low… MEDIATOR:Get Info–warning SALES:Get Notice–Stock is low.180 Left. PURCHASE:Get Notice–Stock is low. Please Buy More!!! 180 Left PURCHASE:Get Notice–Sold 120 二、中介者模式 中介者模式的定义为用一个中介对象封装一系列的对象交互。中介者使各对象不需要显式地互相作用 从而使其耦合松散并可以独立地改变它们之间的交互。三、中介者模式的优点和应用场景 优点 1、减少类与类的依赖降低了类和类之间的耦合 2、容易扩展规模。应用场景 1、设计类图时出现了网状结构时可以考虑将类图设计成星型结构这样就可以使用中介者模式了。 如机场调度系统多个跑道、飞机、指挥塔之间的调度、路由系统著名的MVC框架中其中的C Controller就是MModel和VView的中介者。四、中介者模式的缺点 1、中介者本身的复杂性可能会很大例如同事类的方法如果很多的话本例中的execute逻辑会很复杂
http://www.pierceye.com/news/235258/

相关文章:

  • 不会代码 怎么做网站兴义网络推广
  • 综合电子商务型企业网站怎么做网站的网盘
  • ucenter使用自己做的网站房地产新闻时事热点
  • 企业网站备案 过户电商运营视频教程
  • 做网站运营这工作怎么样北京网站优化价格
  • 河南专业网站建设网站怎么做高权重
  • 国内大型电子网站建设做网站时怎么透明化
  • 微应用和微网站的区别手机网站开发的目的
  • 网站ico开一个网站建设公司好
  • wordpress中文站cn外贸网站怎么换域名
  • 淘宝客怎么做直播网站吗学校网站建设发展概况分析
  • 广州网站外贸推广建筑师必看的16部纪录片
  • 深圳网站建设平台网站右侧浮动广告
  • 中英文网站源码浙江东南网架公司
  • 个人备案网站放什么资料培训
  • html做企业门户网站提供设计的网站
  • 成都三合一网站建设成年s8视频加密线路
  • 做网站购买服务器如何优化网络
  • 企业公司网站 北京怎样用前端知识制作企业网站
  • 精湛的赣州网站建设襄阳哪里有做网站的
  • 拿了网赌代理后怎样做自己的网站河南最新消息今天
  • 北京最大的网站开发公司中山市企业网站seo营销工具
  • 苏州营销型网站建设方案哪些网站做的比较好的
  • 淘宝上买的建设网站能退款吗app怎么查网站备案
  • 电子商务网站开发与设计报告专业网站建设公司兴田德润怎么样
  • 如何建立p2p网站win2003怎么做网站
  • 免费网页设计制作网站建筑公司愿景口号大全
  • 个人可以做网站维护吗专业团队电脑壁纸
  • 东营专业网站建设公司排行鞍山市人力资源招聘信息网
  • 郑州网站建设蝶动小公司使用的网站开发