设计模式-装饰器

装饰器

装饰指在某物件上装点额外饰品的行为,以使其原本朴素的外表变得更加饱满、华丽,而装饰器(装饰者)就是能够化“腐朽”为神奇的利器。装饰器模式(Decorator)能够在运行时动态地为原始对象增加一些额外的功能,使其变得更加强大。从某种程度上讲,装饰器非常类似于“继承”,它们都是为了增强原始对象的功能,区别在于方式的不同,后者是在编译时(compile-time)静态地通过对原始类的继承完成,而前者则是在程序运行时(run-time)通过对原始对象动态地“包装”完成,是对类实例(对象)“装饰”的结果。

1.从素面朝天到花容月貌

室内装修对房屋视觉效果的改善立竿见影,人们化妆也是如此,“人靠衣装马靠鞍”,人们总是惊叹女生们魔法师一般的化妆技巧,可以从素面朝天变成花容月貌,化妆前后简直判若两人,这正是装饰器的粉饰效果在发挥作用。

当然,化妆的过程也许对软件研发人员来说比较陌生,但我们可以从设计模式的角度出发,对这项充满神秘色彩的工作进行拆解和分析。下面开始我们的代码实战,首先对于任何妆容展示者必然对应一个标准的展示行为show(),我们将它抽象出来定义为接口Showable,如代码清单1-1所示。

 public interface Showable {
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yitian_hm

您的支持是我最大鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值