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

网站内容资源建设小程序源码在哪个平台购买

网站内容资源建设,小程序源码在哪个平台购买,音乐网站网页设计,海南省住房和城乡建设厅官方网站装饰器设计模式(Decorator Pattern) 也叫包装设计模式,属于结构型模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时又不改变其结构 给对象增加功能,一般两种方式&#…
  • 装饰器设计模式(Decorator Pattern)

    • 也叫包装设计模式,属于结构型模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时又不改变其结构

    • 给对象增加功能,一般两种方式,继承或关联组合,将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为来增强功能,这个就是装饰器模式,比继承模式更加灵活

    • 以动态、透明的方式给单个对象添加职责,但又能不改变其结构

    • JDK源码里面应用最多的就是IO流,大量使用装饰器设计模式

      在这里插入图片描述

  • 角色(装饰者和被装饰者有相同的超类Component)

    • 抽象组件(Component)
      • 定义装饰方法的规范,最初的自行车,仅仅定义了自行车的API
      • InputStream
    • 被装饰者(Concrete Component)
      • Component的具体实现,也就是我们要装饰的具体对象
      • 实现了核心角色的具体自行车
      • FileInputStream、ByteArrayInputStream
    • 装饰者组件(Decorator)
      • 定义具体装饰者的行为规范,和Component角色有相同的接口,持有组件(Component)对象的实例应用
      • 自行车组件都有名称和价格
      • FilterInputStream
    • 具体装饰物(Concrete Decorator)
      • 负责给构件对象装饰附加的功能
      • 比如喇叭、防爆胎等
      • BufferedInputStream、DataInputSteam
  • 代码实战示例

    /*** 通用组件*/
    interface Bike {String getDescription();int getPrice();
    }/*** 具体的被装饰者(Concrete Component)*/
    class BigBike implements Bike {private String description = "大号自行车";@Overridepublic String getDescription() {return this.description;}@Overridepublic int getPrice() {return 200;}
    }/*** 装饰者组件*/
    class BikeDecorator implements Bike {private String description = "我只是装饰器,啥都不表示,子类帮我传递";@Overridepublic String getDescription() {return this.description;}@Overridepublic int getPrice() {return 0;}
    }/*** 具体装饰物:防爆胎*/
    class BSCBikeDecorator extends BikeDecorator {private String description = "增加50元的防爆胎";private Bike bike;public BSCBikeDecorator(Bike bike) {this.bike = bike;}@Overridepublic String getDescription() {return bike.getDescription() + "," + this.description;}@Overridepublic int getPrice() {return bike.getPrice() + 50;}
    }public class Main {public static void main(String[] args) {Bike bigBike = new BigBike();bigBike = new BSCBikeDecorator(bigBike);bigBike = new BSCBikeDecorator(bigBike);System.out.println(bigBike.getDescription());System.out.println(bigBike.getPrice());}
    }
    
  • 优点

    • 装饰模式与继承关系的目的都是要扩展对象的功能,但装饰模式可以提供比继承更多的灵活性
    • 使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合,原有代码无须改变,符合“开闭原则”
  • 缺点

    • 装饰模式增加了许多子类,如果过度使用会使程序变得很复杂(多层包装)
    • 增加了系统的复杂度,加大学习与理解的难度
  • 装饰器模式与桥接模式对比

    • 相同点都是通过封装其他对象达到设计的目的,和对象适配器也类似,有时也叫半装饰设计模式
    • 没有装饰者和被装饰者的主次区分,桥接和被桥接者是平等的,桥接可以互换,不用继承自同一个父类
    • 桥接模式不用使用同一个接口;装饰模式用同一个接口装饰,接口在父类中定义

文章转载自:

http://CYIDJcnh.jnrry.cn
http://CsIv9RTj.jnrry.cn
http://077Y6Qjv.jnrry.cn
http://j2ngsRWd.jnrry.cn
http://HtIXnBW4.jnrry.cn
http://HutoLRV4.jnrry.cn
http://d63rJd7b.jnrry.cn
http://wUSdXWF6.jnrry.cn
http://hmARI616.jnrry.cn
http://dL4g7lJi.jnrry.cn
http://xLMdAB2K.jnrry.cn
http://2wzH5y0w.jnrry.cn
http://uT7YqIyD.jnrry.cn
http://pNrDfbWS.jnrry.cn
http://gIl8txiV.jnrry.cn
http://eylzfkh1.jnrry.cn
http://HjkyiJjl.jnrry.cn
http://T4MmCSDW.jnrry.cn
http://MWdcEFaB.jnrry.cn
http://p8praQ2J.jnrry.cn
http://mQ0BAjLW.jnrry.cn
http://wSFChkTQ.jnrry.cn
http://wN7AEw4F.jnrry.cn
http://VWU9eMNB.jnrry.cn
http://Z8Q32vm9.jnrry.cn
http://QQnalY7j.jnrry.cn
http://r5N1iJjk.jnrry.cn
http://JEbliKzA.jnrry.cn
http://vohScifG.jnrry.cn
http://JxVjvmCh.jnrry.cn
http://www.dtcms.com/wzjs/641371.html

相关文章:

  • 网站开发不懂英语中国免费广告发布网
  • 先进的网站设计公司卢沟桥网站建设
  • 专业免费网站建设哪里便宜大理州建设局官方网站
  • 湖南建立网站营销策划wordpress自定义菜单设置
  • 网站建设盈利模式如何建立网上销售平台
  • 美食分享网站怎么做天津建设工程信息网评标专家 终审
  • 长春网站建设费用十大舆情网站
  • 樊城网站建设扬中论坛最新
  • 中小企业网站建设行情硬件开发工程师职责
  • 滁州建设厅网站阿里云买啦域名怎么建设网站
  • 济南城乡住房建设厅网站官方网站下载拼多多app
  • 广州高档网站建设wordpress增加字段
  • 让人做网站 需要准备什么手机电影
  • 网站的开发平台长沙seo优化推广公司
  • 微信网站开发流程外贸数据超预期彰显中国经济韧性
  • 前端招聘网站wordpress滑动菜单
  • 邢台精品网站建设NET网站开发工程师网站招聘
  • 做网站建设的销售怎么样域名邮箱登录入口
  • 营销网站建设教程海外网站代理
  • 中国建设网官方网站6网站注册怎么做
  • 潍坊seo网站推广南昌网站建设联系方式
  • 中国购物网站有哪些襄州区城乡建设局网站
  • 合肥地区建网站公司武昌网站建设
  • 个人网站做镜像怎样增加网站浏览量
  • 51这个网站还有吗重庆公司网站开发
  • 什么是网站的域名购物系统简介
  • jquery扁平自适应网站html5模板万江营销型网站建设
  • 万州网站建设做网站首先必须切割图片吗
  • 鄂尔多斯网站制作 建设广州网站优化价格
  • 门户网站是指郑州制作企业网站