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

佛山网站建设优化企业wordpress清除所有评论

佛山网站建设优化企业,wordpress清除所有评论,信息网站设计方案,公司网站建设推广方案模板制作程序化装饰花纹图案装饰图案是广泛使用的结构图案之一。 此模式在运行时动态更改对象的功能#xff0c;而不会影响对象的现有功能。 简而言之#xff0c;此模式通过包装将附加功能添加到对象。 问题陈述#xff1a; 想象一个场景#xff0c;我们有一个比萨饼#xff… 制作程序化装饰花纹图案 装饰图案是广泛使用的结构图案之一。 此模式在运行时动态更改对象的功能而不会影响对象的现有功能。 简而言之此模式通过包装将附加功能添加到对象。 问题陈述 想象一个场景我们有一个比萨饼已经用番茄和奶酪烤了。 之后您只需要记住您需要根据客户的选择添加一些其他浇头。 因此您需要在旅途中再添加一些配料例如鸡肉和胡椒粉。 意图 动态地从对象中添加或删除其他功能或职责而不会影响原始对象。 有时需要通过子类添加功能而无法添加功能因为这可能会创建子类的负​​载。 解 因此在这种情况下我们不是在使用继承为对象例如披萨添加其他功能而是在使用合成。 当我们不想使用继承而是使用合成时此模式很有用。 结构体 装饰器设计模式结构 以下是“装饰器设计”模式的参与者 组件 –这是包装程序在运行时可以承担与其相关的其他职责。 具体组件 –是添加了附加功能的原始对象。 装饰器 -这是一个抽象类其中包含对组件对象的引用并且还实现了组件接口。 具体的装饰器 -它们扩展装饰器并在Component类的顶部构建其他功能。 例 装饰器设计模式示例 在上面的示例中Pizza类充当ComponentBasicPizza是需要装饰的具体组件。 PizzaDecorator充当Decorator抽象类其中包含对Pizza类的引用。 ChickenTikkaPizza是ConcreteDecorator它为Pizza类构建了附加功能。 让我们总结一下实现装饰器设计模式的步骤 创建一个我们要装饰的BasicPizza混凝土组件的接口。 创建一个抽象类PizzaDecorator其中包含Pizzadecorated接口的引用字段。 注意装饰器PizzaDecorator必须扩展相同的装饰Pizza接口。 现在我们需要在decorator的构造函数中传递要装饰的Pizza对象。 让我们创建混凝土装饰器ChickenTikkaPizza它应该提供附加浇头的附加功能。 Concrete DecoratorChickenTikkaPizza应该扩展PizzaDecorator抽象类。 将装饰器bakePizza的方法重定向到装饰类的核心实现。 覆盖需要更改行为的方法bakePizza例如添加Chicken Tikka浇头。 让客户端类通过在Concrete ComponentBasicPizza的帮助下创建Concrete DecoratorChickenTikkaPizza来创建Component typePizza对象。 简而言之要记住新组件混凝土组件混凝土装饰器 比萨披萨新的ChickenTikkaPizza新的BasicPizza; 代码示例 BasicPizza.java public String bakePizza() {return Basic Pizza;} Pizza.java public interface Pizza {public String bakePizza(); } PizzaDecorator.java public abstract class PizzaDecorator implements Pizza {Pizza pizza;public PizzaDecorator(Pizza newPizza) {this.pizza newPizza;}Overridepublic String bakePizza() {return pizza.bakePizza();} } ChickenTikkaPizza.java public class ChickenTikkaPizza extends PizzaDecorator {public ChickenTikkaPizza(Pizza newPizza) {super(newPizza);}public String bakePizza() {return pizza.bakePizza() with Chicken topping added;} } 客户端程序 public static void main(String[] args) {Pizza pizza new ChickenTikkaPizza(new BasicPizza());System.out.println(pizza.bakePizza());}优点 装饰器设计模式比标准继承提供了更大的灵活性。 继承还以静态方式扩展了父类责任。 但是装饰器允许以动态方式执行此操作。 退税 代码调试可能很困难因为此模式会在运行时添加功能。 有趣的一点 适配器模式将不同的接口插入在一起而装饰器模式则增强了对象的功能。 与装饰器模式不同策略模式无需更改即可更改原始对象。 代理模式控制对对象的访问时装饰器模式增强了对象的功能。 Composite和Decorator模式都使用相同的树结构但是两者之间存在细微的差异。 当我们需要将具有相似行为的一组对象保留在另一个对象中时可以使用复合模式。 但是当我们需要在运行时修改对象的功能时会使用装饰器模式。 Java API中有许多装饰器模式的实时示例。 java.io.BufferedReader; 如果我们看到BufferedReader的构造函数那么我们可以看到BufferedReader通过添加更多功能例如在reader类中不存在的readLine包装了Reader类。 关于客户端如何使用装饰器模式我们可以使用与上述示例相同的格式。new BufferedReadernew FileReadernew File“ File1.txt”; 同样 BufferedInputStream是装饰对象FileInputStream的装饰器。 BufferedInputStream bs new BufferedInputStreamnew FileInputStreamnew File“ File1.txt”; 参考 四人帮–在Idiotechie博客上使用JCG合作伙伴 Mainak Goswami的装饰设计图案进行装饰 。 翻译自: https://www.javacodegeeks.com/2012/12/decorate-with-decorator-design-pattern.html制作程序化装饰花纹图案
http://www.pierceye.com/news/750726/

相关文章:

  • 工程门户网站建设怎样制作表白网站
  • 手机如何创建个人网站上海 .net网站建设
  • 小程序app软件定制开发首页排名优化公司
  • 红酒 专业 网站建设视频网站后台
  • 宁波网站建设58同城百度突然搜不到网站
  • 网站开发技术和seo的联系wordpress发邮件卡主
  • 网站开发安全模块方案网站运营方案怎么写?
  • 章丘网站制作手机网站 微信平台
  • 自定义功能的网站做坏事网站
  • 做农村电子商务的网站有哪些wordpress批量修改引用网址
  • 简述建立网站的步骤内蒙古建设监理协会网站
  • 网站上传格式工信部 网站备案查询
  • 网站开发怎么让别人看到网站设计主流尺寸
  • 都匀经济开发区建设局网站华宇网站建设
  • 南谯区住房和城乡建设局网站大连百度推广优化
  • 东莞设计网站公司被邀请做刷客会不会碰到钓鱼网站
  • 阿里云服务器多个网站南充网络推广
  • 电子商务网站建设规划设计任务书wordpress 有道云笔记
  • 广州市地铁站地图潍坊网站建设方案
  • 买一个网站服务器多少钱企业 怎么建交互网站
  • 国产网站开发工具公司福建新闻最新消息
  • 云主机和云虚拟主机优化教程网站推广排名
  • 佛山网站建设开发二维码生成器永久免费版下载
  • 衡水网站建设衡水网站建设网站建设南宁
  • 汽车网站推广策划方案wordpress又拍云cdn伪静态
  • 用dw建立网站网站设计师要学什么
  • 网站模块建设中二级医院做网站
  • 求大神帮忙做网站云网站后台
  • 保护稀有动物网站建设策划书凡科建站多少钱
  • 怎么通过做网站来赚钱坪山网站建设方案