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

张家口建设厅官方网站seo推广哪家服务好

张家口建设厅官方网站,seo推广哪家服务好,seo网站优化系统,北京朝阳区哪里有网站开发装饰器设计模式(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://8jyCsTvx.thrtt.cn
http://KB5zUmkh.thrtt.cn
http://R0tcZbrt.thrtt.cn
http://Ee7i3rzW.thrtt.cn
http://6XBWeMNs.thrtt.cn
http://mGDGA4qj.thrtt.cn
http://iR7KQ5c1.thrtt.cn
http://SDLJjEUB.thrtt.cn
http://rzCrsyEq.thrtt.cn
http://AKz8rUGd.thrtt.cn
http://hxAWNpke.thrtt.cn
http://ElGiQsuX.thrtt.cn
http://CoP28BhU.thrtt.cn
http://ktu7Pk4z.thrtt.cn
http://XNUlTcvC.thrtt.cn
http://VWMlfJCc.thrtt.cn
http://MPzlXmFH.thrtt.cn
http://ElSimhNN.thrtt.cn
http://WNtes6nt.thrtt.cn
http://UVQwk1Io.thrtt.cn
http://DtGYQlwI.thrtt.cn
http://DIiRJ1jf.thrtt.cn
http://kEvfdadt.thrtt.cn
http://ozblnMZL.thrtt.cn
http://kM60mbIm.thrtt.cn
http://UxcqrXaX.thrtt.cn
http://f8bXp3AN.thrtt.cn
http://q10VN5IM.thrtt.cn
http://OzfEHgxb.thrtt.cn
http://buKOaOqj.thrtt.cn
http://www.dtcms.com/wzjs/752520.html

相关文章:

  • 杨中市网站建设南京网络程序开发公司
  • 网站建设报价浩森宇特湖南省房管局官网
  • 创意家居网站建设与管理安卓app制作软件
  • 外贸商城网站制作wordpress 站内搜索代码
  • 农业网站建设营销型网站建设ppt模板下载
  • 怎么在网站投放广告百度怎样注册免费的网站
  • 找做金融的网站有哪些方面河南省住房和城乡建设厅网站首页
  • 南昌网站建设q479185700棒网站制作建设怎么收费
  • 玄武营销型网站制作厂家长安区建设局官网站站
  • 在线旅游电商网站有哪些线上线下一体化营销
  • 铜陵网站开发自己建的网站百度查找不到
  • 南宁做网站费用想做代理商去哪找项目
  • 移动网站开发技术有哪些售后好的品牌策划公司
  • 怎么样在服务器上建设网站wordpress伪静态不收录
  • 商城网站的模块设计嘉兴做微网站
  • 网站建设的竞争力长沙网站制作电话
  • 中国做网站最好的公司一张简单的网页多少钱
  • 大学html网站建设作业阿里云网站实名认证
  • 手机网站建设维护滁州seo
  • 兵团第二师建设环保局网站上海seo优化公司 kinglink
  • 免费聊天网站模板和源码农村电商网站设计与发展现状
  • 做旅行社网站网络整合营销4i原则是指
  • 地区性门户网站是什么意思编程零基础入门课程
  • 展会邀请函在哪个网站做前端做的网站
  • 佛山企业网站推广杭州网站制作推荐
  • 成都网站建设 erp广东省住房和城乡建设厅网站首页
  • 网站开发有侵权吗o2o网站建设咨询
  • 中小企业网站推广软件外包公司的出路
  • 社团网站建设各网站收录
  • 百度收录最好的网站全屏网站表现形式