GOF设计模式
Decorator Pattern
装饰者设计模式

装饰者模式应用场景

• 1、想透明并且动态地给对象增加新的职责的时候。
• 2、给对象增加的职责,在未来存在增加或减少可能。

• 3、用继承扩展功能不太现实的情况下,应该考虑用组合的方式。

public class Girl {String description="no particular";public String getDescription() {return description;}
}
public class Chinese extends Girl {public Chinese(){this.description="中国姑娘";}
}
public class American extends Girl {public American(){this.description="美国姑娘";}
}
public abstract class GirlDecorator extends Girl{public abstract String getDescription();
}
public class Code extends GirlDecorator {private Girl girl;Code(Girl girl){this.girl=girl;}@Overridepublic String getDescription() {return this.girl.getDescription()+"还会写代码";}
}
public class Art extends GirlDecorator {private Girl girl;public Art(Girl girl){this.girl=girl;}@Overridepublic String getDescription() {return this.girl.getDescription()+"还会画画";}
}
public class Test {public static void main(String[] args) {Girl girl=new American();System.out.println(girl.getDescription());Code code=new Code(girl);System.out.println(code.getDescription());Art art=new Art(code);System.out.println(art.getDescription());}
}

装饰者设计模式(Decorator Pattern)相关推荐

  1. 极速理解设计模式系列:23.装饰器模式(Decorator Pattern)

    五个角色:部件(Component).具体部件(ConcreteComponent).装饰抽象类(Decorator).具体装饰对象(ConcreteDecorator).客户端(Client) 部件 ...

  2. 设计模式(三):“花瓶+鲜花”中的装饰者模式(Decorator Pattern)

    在前两篇博客中详细的介绍了"策略模式"和"观察者模式",今天我们就通过花瓶与鲜花的例子来类比一下"装饰模式"(Decorator Patte ...

  3. C++实现装饰者模式Decorator Pattern

    设计原则5:类应该对扩展开放,对修改关闭. 目标:允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为. 好处:设计具有弹性可以应对改变,可以接受新的功能来应对改变的需求. 遇到的问题:类数量爆 ...

  4. python中的装饰器、装饰器模式_python 设计模式之装饰器模式 Decorator Pattern

    #写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...

  5. python 设计模式之装饰器模式 Decorator Pattern

    #写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...

  6. 设计模式 -结构型模式_ 装饰者模式Decorator Pattern 在开源软件中的应用

    文章目录 定义 结构图 需求 装饰者模式 装饰者模式在MyBatis中的应用 小结 定义 装饰模式 Decorator : 在不改变原有功能的基础上, 动态的给一个对象添加一些额外的职责 ,非常符合开 ...

  7. 【Java设计模式系列】装饰器模式(Decorator Pattern)

    简介 一般有两种方式可以给一个类或对象新增行为: 继承 子类在拥有自身方法同时还拥有父类方法.但这种是静态的,用户无法控制增加行为的方式和时机. 关联 将一个类的对象嵌入另一个对象,由另一个对象决定是 ...

  8. 装饰者模式(Decorator pattern)

    说起来惭愧,在某群解答别人问题时居然回答错误,羞煞我也.为此特地补习一下. :( 装饰者模式 作用: 动态给对象添加职责 典型案例: 在一般的留言本中(支持UBB)输入文本,按B设置为粗体,I为斜体, ...

  9. decorator java_java_详解java装饰模式(Decorator Pattern),一、装饰器模式(Decorator Patter - phpStudy...

    详解java装饰模式(Decorator Pattern) 一.装饰器模式(Decorator Pattern) 允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式 ...

最新文章

  1. java 多线程 函数_Java多线程--同步函数
  2. python400教程全集免费-千锋出品全套python视频教程,400大全集,你了解吗?
  3. python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量...
  4. github 运行python_Github Actions教程:运行python代码并Push到远端仓库
  5. mysql 事务 视图 存储过程 触发器
  6. Android 编译系统分析(一)
  7. 【转载】请问Silverlight 获取客户端网卡mac码
  8. C语言试题七十六之请编写函实现百钱买百鸡
  9. [转载]中国书法:中华文化的代表性符号
  10. android爬取英文单词发音,并在app中播放。(使用百度接口)
  11. k8s-生产级别构建DeployMent
  12. cmap参数 plt_[转]matplotlib - plt.rcParams、matshow/cmap/坐标轴设置
  13. 三,mergetool和difftool
  14. python爬虫常见报错_Python爬虫系列之什么是爬虫
  15. sklearn中的线性回归
  16. python英文文本词频统计_python实现简单的英文词频统计
  17. Android 读取内存文件返回byte数组
  18. 漫漫人生路,悠悠岁月深。最快的脚步不是跨越,而是继续;
  19. 吕鑫老师VS2015系列教程资源
  20. 组合数学 ch4 生成排列和组合

热门文章

  1. 学生奖惩管理系统c语言,学生座位管理系统的实现.doc
  2. 数据人PK也无人,为什么业务部门的数据需求都是急活?
  3. 双系统重装ubuntu,ubuntu分区方案
  4. 测试相关各软件下载地址
  5. Linux内核很吊之 module_init解析 (下)
  6. 警惕!部分iPhone 6S无法开机,Apple已推出了维修计划
  7. 索尼手机c6802的Android,索尼C6802 (Xperia UL)图文刷机教程,最新教程,简单明了
  8. 对钢笔画的评价-我觉得适用于其他很多事情
  9. 鸿蒙系统支持平板电脑吗,华为更新鸿蒙测试版:支持平板电脑,新平板和P50一起发布...
  10. idea 忽略 node_modules 索引