美文网首页
【设计模式】装饰者模式

【设计模式】装饰者模式

作者: CloudHunter | 来源:发表于2016-12-31 18:06 被阅读0次

设计原则:

类应该对扩展开放,对修改关闭
我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可以搭配新的行为。如果能实现这样的目标,有什么好处呢?这样的设计具有弹性可以应对改变,可以接受新的功能来应对改变的需求。

在选择需要被扩展的代码部分时要小心。每个地方都采用开放-关闭原则,是一种浪费,也没有必要,还会导致代码变得复杂而且难以理解。因为这通常会引入新的抽象层次,需要把注意力放在最有可能改变的地方。


设计模式:装饰者模式

定义:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
装饰者模式的缺点是会造成设计中又很多的小类。
装饰者可以透明的插入,但是如果有些代码依赖特定的类型,就不应该导入装饰者


要点:

  • 继承属于容易扩展的形式之一,但不见得是达到弹性设计的最佳方式
  • 在我们的设计中,应该允许行为被扩展,而无需修改现有的代码
  • 组合和委托可用于在运行时动态的加上行为
  • 除了继承,装饰者模式也可以让我们扩展行为
  • 装饰着模式意味着一群装饰者类,这些类用来包装具体组件
  • 装饰者类反应出被装饰组件的类型(事实上他们具有相同的类型),都通过接口和集成实现
  • 装饰者可以在被装饰者的行为前面与/或加上自己的行为,甚至将被装饰者的整个行为取代掉,而达到特定的目的
  • 你可以用无数的装饰者包装一个组件
  • 装饰者一般对组件的客户是透明的,除非客户程序依赖于组件的具体类型
  • 装饰者会导致设计中出现许多小对象,如果过度使用,会让程序变得很复杂

相关文章

  • 设计模式

    设计模式 单例模式、装饰者模式、

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • java IO 的知识总结

    装饰者模式 因为java的IO是基于装饰者模式设计的,所以要了解掌握IO 必须要先清楚什么事装饰者模式(装饰者模式...

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计

    JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式 装饰器模式,又名装饰者模式。它的定义是“在不...

  • 8种设计模式:

    主要介绍 单例设计模式,代理设计模式,观察者设计模式,模板模式(Template), 适配器模式,装饰模式(Dec...

  • 装饰者模式

    JavaScript 设计模式 张容铭第十二章 房子装修--装饰者模式 (102页) 装饰者模式(Decorato...

  • Summary of February 2017

    READING Head First 设计模式:完成50%。内容:观察者模式、装饰者模式、工厂模式、单件模式、命令...

  • 装饰对象:装饰者模式

    装饰对象:装饰者模式   这是《Head First设计模式(中文版)》第三章的读书笔记。   装饰者模式,可以称...

  • 设计模式之装饰器模式

    也称装饰者模式、装饰器模式、Wrapper、Decorator。 装饰模式是一种结构型设计模式,允许你通过将对象放...

网友评论

      本文标题:【设计模式】装饰者模式

      本文链接:https://www.haomeiwen.com/subject/yvtbvttx.html