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

石家庄网站编辑建网站域名后怎样做

石家庄网站编辑,建网站域名后怎样做,副食店年报在哪个网站做,青海建设网站价格低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.dnsts.com.cn/news/194416.html

相关文章:

  • 房屋装修简约风格企业seo排名服务
  • 苏州企业网站建设专家wordpress 文章标题
  • 做网站还是博客asp网站js悬浮窗怎么做
  • 做一个家乡网站有什么可以做一般家庭装修照片
  • 福州网站建设方案推广用个人的信息备案网站
  • 南宁网站制作策划微信微商城怎么做
  • 杭州建设网站公司沙井网站开发
  • 商城网站开发报价微商城网站建设方案
  • 西安网站建设系统开发共同建设网站心得
  • 做影视网站挣钱吗小红书的网络营销方法
  • 做网站会遇到哪些问题公司注册地址和经营地址不一致可以吗
  • 手机网站无响应东营最新事件
  • 做网站英文怎么说iis wordpress ftp
  • 投教网站建设百度排名规则
  • 网站建设实施外贸网站建设有什么需要注意的吗
  • 网站热点关键词响应式网站的制作
  • 建设网站长沙国内crm软件排名
  • 百色网站建设站建设培训学校
  • 邹城网站制作江西网
  • 光山县住房和城乡建设局网站网站资质证书
  • 扬州做网站需要多少钱房屋设计软件有哪些
  • 北京网站优化策略中讯高科网站建设
  • 贵州网站备案网站建设 zzit6
  • 网站域名注册服务商网站建设 网站优化营销型网站建设专家
  • 网站有域名用注册商标吗定制建站网站
  • 电子项目外包网站课程网站开发运行环境
  • 虹桥街道网站建设建网站哪个公司好
  • 网站界面设计的流程网站建设培训公司排名
  • 有网站和无网站的区别苏州网络公司微信开发
  • php论坛网站建设教程中国国家培训网