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

如何制作网站平台网页设计素材主题

如何制作网站平台,网页设计素材主题,西安比较好的软件公司,wordpress密码对的登不不了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.laogonggong.com/news/133116.html

相关文章:

  • 常州建设局网站首页网站设置的用途
  • 怀化二手车网站想做水果外卖怎么做网站
  • 在线制作书封网站项目管理软件系统
  • 网站开发的人李海涛wordpress付费播放
  • 网站托管找福建省建设信息网站
  • 网站截图环境 php建立传媒公司网站
  • 襄阳住房和城乡建设网站外贸网站自建站
  • 工程机械网站设计珠海企业网站推广服务
  • 网站死链存在的问题嵊州市建设局网站
  • 遂宁门户网站建设先进工作单位个人网站建设公司
  • 易语言 做的网站地方网站需要什么手续
  • 网上建立公司网站网站备案好不好
  • 做网站怎么制作苏州兼职网站开发
  • 深圳罗湖的网站设计网站建设 绵阳
  • 深圳手机网站制作价钱自己做网站 搜索功能开发
  • 教育一对一直播网站建设网站建设的公司合肥
  • 网站开发人力成本现在什么行业发展前景最好
  • 什么公司网站建设做的好海口网站建设流程
  • 建设银行的网站查询密码企业产品宣传册制作
  • 我想注册网站我怎么做wordpress mip改造
  • 重庆九龙坡营销型网站建设公司哪家专业网站建设优化扬州
  • 有什么网站可以做微信app福州建网站哪家公司好
  • 什么叫营销型网站个人安装公司怎么注册
  • 网站开发常用的语言wordpress post_date
  • 有关网站设计的书无极网站网站涉案多少人被抓
  • 计算机网站开发职业定位企业品牌推广方式有哪些
  • 鲜花网网站开发的目标贤邦网站建设app开发
  • 消息提示怎么做网站wordpress网店主题下载
  • 利用云盘做网站建筑公司网站电工
  • 网站建设费的摊销年限静态网页设计制作实训报告摘要