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

网页设计作业电影介绍网站dede静态网站模板下载

网页设计作业电影介绍网站,dede静态网站模板下载,微信营销的优势有哪些,网站建设公司哪家好?6-Python与设计模式–装饰器模式 一、快餐点餐系统 又提到了那个快餐点餐系统#xff0c;不过今天我们只以其中的一个类作为主角#xff1a;饮料类。 首先#xff0c;回忆下饮料类#xff1a; class Beverage():name price 0.0type BEVERAGE…6-Python与设计模式–装饰器模式 一、快餐点餐系统 又提到了那个快餐点餐系统不过今天我们只以其中的一个类作为主角饮料类。 首先回忆下饮料类 class Beverage():name price 0.0type BEVERAGEdef getPrice(self):return self.pricedef setPrice(self, price):self.price pricedef getName(self):return self.nameclass coke(Beverage):def __init__(self):self.name cokeself.price 4.0class milk(Beverage):def __init__(self):self.name milkself.price 5.0除了基本配置快餐店卖可乐时可以选择加冰如果加冰的话要在原价上加0.3元 卖牛奶时可以选择加糖如果加糖的话要原价上加0.5元。怎么解决这样的问题 可以选择装饰器模式来解决这一类的问题。首先定义装饰器类 class drinkDecorator():def getName(self):passdef getPrice(self):passclass iceDecorator(drinkDecorator):def __init__(self,beverage):self.beveragebeveragedef getName(self):return self.beverage.getName() icedef getPrice(self):return self.beverage.getPrice()0.3class sugarDecorator(drinkDecorator):def __init__(self,beverage):self.beveragebeveragedef getName(self):return self.beverage.getName() sugardef getPrice(self):return self.beverage.getPrice()0.5构建好装饰器后在具体的业务场景中就可以与饮料类进行关联。 以可乐冰为例示例业务场景如下 if __name____main__:coke_colacoke()print Name:%s%coke_cola.getName()print Price:%s%coke_cola.getPrice()ice_cokeiceDecorator(coke_cola)print Name:%s % ice_coke.getName()print Price:%s % ice_coke.getPrice()打印结果如下 Name:coke Price:4.0 Name:coke ice Price:4.3 二、装饰器模式 装饰器模式定义如下动态地给一个对象添加一些额外的职责。在增加功能方面 装饰器模式比生成子类更为灵活。装饰器模式和上一节说到的代理模式非常相似可以认为装饰器模式就是代理模式的一个特殊应用 两者的共同点是都具有相同的接口不同点是侧重对主题类的过程的控制而装饰模式则侧重对类功能的 加强或减弱。上一次说到JAVA中的动态代理模式是实现AOP的重要手段。而在Python中 AOP通过装饰器模式实现更为简洁和方便。先来解释一下什么是AOP。AOP即Aspect Oriented Programming中文翻译为面向切面的编程它的含义可 以解释为如果几个或更多个逻辑过程中这类逻辑过程可能位于不同的对象不同的接口当中有重复的操 作行为就可以将这些行为提取出来即形成切面进行统一管理和维护。举例子说系统中需要在各个地方 打印日志就可以将打印日志这一操作提取出来作为切面进行统一维护。从编程思想的关系来看可以认为AOP和OOP面向对象的编程是并列关系二者是可以替换的也可以结合起来用。实际上在Python语言中是天然支持装饰器的如下例 def log(func):def wrapper(*args, **kw):print call %s(): % func.__name__return func(*args, **kw)return wrapperlog def now():print 2016-12-04 if __name____main__:now()打印如下 call now(): 2016-12-04 log接口就是装饰器的定义而Python的语法部分则直接支持装饰器的使用。 如果要在快餐点餐系统中打印日志该如何进行AOP改造呢可以借助类的静态方法或者类方法来实现 class LogManager:staticmethoddef log(func):def wrapper(*args):print Visit Func %s%func.__name__return func(*args)return wrapper在需要打印日志的地方直接LogManager.log即可打印出访问的日志信息。 如在beverage类的函数前加上LogManager.log场景类保持不变则打印结果如下 Visit Func getName Name:coke Visit Func getPrice Price:4.0 Visit Func getName Name:coke ice Visit Func getPrice Price:4.3 三、装饰器模式的优点和应用场景 优点 1、装饰器模式是继承方式的一个替代方案可以轻量级的扩展被装饰对象的功能 2、Python的装饰器模式是实现AOP的一种方式便于相同操作位于不同调用位置的统一管理。 应用场景 1、需要扩展、增强或者减弱一个类的功能如本例。 四、装饰器模式的缺点 1、多层装饰器的调试和维护有比较大的困难。
http://www.hkea.cn/news/14435312/

相关文章:

  • 推荐网站建设服务商网站开发服务费分录
  • 周口网站建设公司农业电商网站建设方案
  • 网站开发技术项目说明书58同城网站建设的不足
  • 做爰视频在线观看免费网站wordpress商城安装教程
  • 北京正规做网站公司网站的需求分析包括哪些
  • 做贸易注册网站用自己名字网站后台文章删了 怎么前台还有
  • php 网站开发文档怎么写北京网站建设开发
  • 零售管理系统哪个软件好给你一个网站你如何做优化
  • 网络服务提供者不得在什么时间seo建站外贸
  • 网站联系方式设计深圳网站建设公司哪家好
  • 服装网站 欣赏怎样安装网站模板
  • 重庆龙华网站建设公司东莞哪家网站建设
  • dw软件下载官方网站爬知乎文章做网站
  • 农产品信息网站的建设深圳公司装修设计
  • 做商城网站那个好建站平台入口
  • 简单网页制作模板源代码网络营销seo教程
  • 网站制作思路美工培训班学
  • 长沙营销型网站建设制作官网搭建平台
  • 单页html模板网站优化公司收费
  • 西安响应式网站建设服务提供商怎么看网站是谁做的
  • 西安做网站公司魔盒购物网站英语
  • 网站开发和嵌入式开发湖南网址大全
  • 重庆免费发布信息网站sem推广是什么意思
  • 网站模板 手机app展示贵阳市观山湖区建设局网站
  • 黄冈市建设信息网站郑州市建设工程信息网站
  • 做网站寄生虫需要哪些东西带平台的房子装修图片大全
  • 唐山网站制作价格泾川县建设局网站
  • 营销类网站建设网站设计论文的参考文献
  • 北京网站建设飞沐微信公众平台小程序怎么发布
  • 官方网站下载水印相机网站设计是什么