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

南充网站建设与维护衡水注册公司

南充网站建设与维护,衡水注册公司,制作教育类网站,菏泽建设职业中等专业学校官方网站目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.动态地给一个对象添加一些额外的职责。2.Decorator Pattern。3.就增加功能而言#xff0c;装饰器模式比生成子类更加灵活。4.一种在不改变现有对象结构的情况下#xff0c;动态地给对… 目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.动态地给一个对象添加一些额外的职责。2.Decorator Pattern。3.就增加功能而言装饰器模式比生成子类更加灵活。4.一种在不改变现有对象结构的情况下动态地给对象增加一些职责即增加额外功能的设计模式。5.属于对象结构型模式。 2. 应用场景 1.扩展功能当需要给某个对象添加额外的功能但又不想修改其源代码或结构时可以使用装饰器模式。例如在软件开发中可以使用装饰器模式来扩展类的功能而无需创建新的子类。2.动态代理装饰器模式允许在运行时动态地给对象添加或撤销功能。这对于需要动态修改对象行为的场景非常有用。3.缓存功能通过装饰器模式可以为对象添加缓存功能以提高系统的性能。例如可以在数据访问层使用装饰器模式来缓存数据减少对数据库的频繁访问。4.日志记录在系统中经常需要记录对象的操作历史或状态变化。通过装饰器模式可以轻松地给对象添加日志记录功能方便后续的调试和错误追踪。5.用户界面定制在图形用户界面GUI设计中可以使用装饰器模式来定制和扩展控件的功能。例如可以为按钮添加动画效果、改变样式或添加额外的交互功能。6.文件处理在处理文件时可以使用装饰器模式来添加各种文件处理功能如压缩、加密、解密等。这样用户可以根据需要选择不同的装饰器来处理文件。7.网络请求在发送网络请求时可以使用装饰器模式来添加各种请求处理功能如超时重试、身份验证、请求签名等。这些功能可以在不修改原始请求代码的情况下动态地添加到请求中。8.数据处理在处理数据时可以使用装饰器模式来添加各种数据处理功能如排序、过滤、转换等。这些功能可以根据需要动态地添加到数据处理流程中。 3. 结构图 4. 构成 1.Commponent抽象组件定义一个对象接口可以给这些对象动态地添加职责。定义一个接口或抽象类规定被装饰对象的行为。2.ConcreteComponent具体组件定义一个对象可以给这个对象添加职责。实现抽象组件接口或继承抽象组件类是装饰器模式中的原始对象。3.Decorator抽象装饰器维持一个指向Component对象的指针并定义一个与Component接口一致的接口。继承或实现抽象组件接口并持有一个指向抽象组件的引用。抽象装饰器通常还包含一些用于增加额外功能的方法。4.ConcreteDecorator具体装饰器向组件添加职责。继承抽象装饰器类并实现具体的额外功能。具体装饰器可以根据需要添加多个以实现不同的效果。 5. 适用性 1.在不影响其他对象的情况下以动态、透明的方式给单个对象添加职责。2.处理那些可以撤销的职责3.当不能采用生成子类的方式进行扩充时。一种情况是可能有大量独立的扩展为支持每一种组合将产生大量的子类使得子类数目呈爆炸性增长。另一种情况可能是由于类定义被隐藏或类定义不能用于生成子类。 6. 优点 1.灵活性装饰器是继承的有力补充比继承更加灵活。它可以在不改变原有对象的情况下动态地给一个对象扩展功能实现即插即用。2.可扩展性通过使用不同的装饰类以及这些装饰类的排列组合可以实现不同的效果满足不同的需求。3.遵循开闭原则装饰器模式在扩展功能时不需要修改原有类的代码符合开闭原则对扩展开放对修改关闭。 7. 缺点 1.增加复杂性装饰器模式会增加许多子类过度使用会增加程序的复杂性。2.难以理解如果装饰器类过多可能会使代码变得难以理解和维护。 8. java示例 1.抽象组件 package com.learning.decorator.person;/*** 抽象组件* 定义一个人的接口* 获取人的描述*/ public interface Person {String getDescription(); }2.具体组件 package com.learning.decorator.person;/*** 基础的人* 具体组件*/ public class BasePerson implements Person {/*** 人的姓名*/private String name; public BasePerson(String name) { this.name name; } Override public String getDescription() { return name; } }3.抽象装饰器 package com.learning.decorator.person;/*** 抽象装饰器* 衣服装饰器*/ public abstract class ClothingDecorator implements Person {//被装饰的对象protected Person person; public ClothingDecorator(Person person) { this.person person; } Override public String getDescription() { return decorate(person.getDescription()); } protected abstract String decorate(String description); }4.具体装饰器帽子装饰器 package com.learning.decorator.person;/*** 具体装饰器* 帽子装饰器*/ public class HatDecorator extends ClothingDecorator {public HatDecorator(Person person) { super(person); }/*** 帽子装饰,戴了一个帽子* param description* return*/Override protected String decorate(String description) { return description 戴了一个帽子;} }5.具体装饰器围巾装饰器 package com.learning.decorator.person;/*** 具体装饰器* 毛巾装饰器*/ public class ScarfDecorator extends ClothingDecorator {public ScarfDecorator(Person person) { super(person); }/*** 覆盖父类的方法, 戴了一条围巾* param description* return*/Override protected String decorate(String description) { return description 戴了一条围巾;} }6.客户端 package com.learning.decorator.person;public class Client {public static void main(String[] args) { Person person new BasePerson(张三);System.out.println(person.getDescription());Person personWithHat new HatDecorator(person);System.out.println(personWithHat.getDescription());Person personWithHatAndScarf new ScarfDecorator(personWithHat);System.out.println(personWithHatAndScarf.getDescription());} }7.示例截图
http://www.w-s-a.com/news/917622/

相关文章:

  • 网站目录管理模板企业解决方案部
  • 建设网站上申请劳务资质吗珠海哪个公司建设网站好
  • c2c商城网站建设在微信怎么开发公众号
  • 美的公司网站建设的目的做个网站要钱吗
  • 和县建设局网站孟州网站建设
  • 网站与规划设计思路竞价培训课程
  • 网站建设设计视频专业设计企业网站
  • 湖南省建设工程网站cerntos wordpress
  • 主机屋的免费空间怎么上传网站广告公司的经营范围有哪些
  • 门户网站建设公司案例门户建设是什么意思
  • 深圳seo专家东莞网站关键词优化排名
  • 套用别人产品图片做网站如何在阿里云自主建网站
  • 网站开发需要用哪些东西wordpress页面参数
  • 大连模板网站制作哪家好wordpress 安装不上
  • 宝塔搭建网站首页图片点击率如何提高
  • 长沙找人做网站wordpress如何安装模板
  • 比较好的国外网站建设公司wordpress短代码可视化
  • 做新的网站网站个性化
  • 吉安做网站的英文网站 字体大小
  • 外贸网站服务商wordpress主题handsome
  • 云主机多个网站如何优化网站图片
  • 松江移动网站建设成都app开发制作公司
  • 锦州做网站的公司百度seo搜索营销新视角
  • 做画册找什么网站海南建设工程股份有限公司网站
  • 网站机房建设有助于网站备案
  • 北辰苏州网站建设抖音代运营投诉平台
  • 安徽住房与城乡建设部网站如何新建站点
  • 企业网站开发的感想网站开发公司所需投入资源
  • 如何拿网站后台账号wordpress 电影下载站源码
  • 公司网站建设方案书安卓应用市场免费下载安装