装饰者模式

装饰器 解决什么问题?
我们采用 字处理的软件 比如word,sublime 外面加一些装饰 加1个外框 这些外面的样式都是装饰
怎么解决这些装饰?最简单的话 我们可能会想 直接加1个继承 但是这样会产生类数量的爆炸
而且不灵活:装饰和被装饰者之间耦合度太高
解决方法 装饰器
装饰器就是用聚合代替继承
聚合的定义:A类和B类有逻辑关系。A类是整体,B类是部分。A类由B类构成,同时B类即便不在A类中也可以单独存在,就是聚合

装饰器模式

paint()在TankDecorator类中,所以是聚合,也是装饰器

桥梁模式强调 两个分支独立发展 弱联系 而decorator强调 我对你的装饰 这个是语义上的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 一般情况下,当我们想给一个类或对象添加功能的时候,有两种常用的方式: 继承:通过使用继承,我们可以使子类既能...
    骑着乌龟去看海阅读 545评论 0 1
  • 装饰者模式 UML类图 模式说明 装饰者模式,在不改变原类文件和使用继承的情况下,动态扩展一个对象的功能。它是通过...
    lanzry阅读 1,652评论 1 2
  • 上篇文章提到了Context及其子类源码分析(一),这篇文章我们来讲讲Context及其子类用到的设计思想——装饰...
    小阿拉阅读 992评论 0 1
  • 在《JAVA与模式》一书开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装模式。装饰模式以对客户端...
    笨笨翔阅读 387评论 0 2
  • 定义:在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能。它是通过创...
    找不到工作就去讨饭啦阅读 227评论 0 0