美文网首页
6. 装饰模式

6. 装饰模式

作者: 努力生活的西鱼 | 来源:发表于2020-04-26 22:44 被阅读0次
装饰模式

需要把所需的功能按正确的顺序串联起来进行控制。

动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

装饰模式.png

Component是定义一个对象接口,可以给这些对象动态地添加职责。
ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。
Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能。

装饰模式是为已有功能动态地添加更多功能的一种方式。
当系统需要新的功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。
在主类中加入新的字段,新的方法和新的逻辑,从而增加了主类的复杂度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要,而装饰模式却提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象了。

装饰模式的优点是,把类中的装饰功能从类中搬移去除,这样可以简化原有类中重复的装饰逻辑。有效地把类的核心职责和装饰功能区分开了。而且可以去除相关类中重复的装饰逻辑。

相关文章

  • 6. 装饰模式

    装饰模式 需要把所需的功能按正确的顺序串联起来进行控制。 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰...

  • 6. 装饰者模式

    设计模式并非是难以理解, 或是难以应用到实践中的, 相反的, 设计模式恰恰代表了某些场景下的最佳实践! 这些设计模...

  • 6.装饰设计模式

    装饰模式 包装类的特点: 1.包装类和被包装类实现同样的接口2.包装类持有一个被包装的对象3.包装类在实现接口过程...

  • Boolan(博览网)——C++ 设计模式(第十一周)

    目录 1. 设计模式简介 2. 面向对象设计原则 3. 模板方法 4. 策略模式 5. 观察者模式 6. 装饰模式...

  • Android中的设计模式整理

    1.单例模式 2.构建者模式 3.工厂模式 4.适配器模式 5.装饰模式 6.外观模式 7.组合模式 8.策略模式...

  • Java设计模式

    1.策略模式 2.观察者模式 3.装饰者模式 4.工厂模式 5.单件模式 6.命令模式 7.适配器模式与外观模式 ...

  • 2020-11.04-Scala-24(设计模式入门)

    1.简单工厂模式 2.工厂方法 3.抽象工厂模式 4.单例模式 5.装饰者模式 6.观察者模式 7.代理模式

  • c#面向对象10--简单工厂设计模式

    23种设计模式 1.单例模式2.抽象工厂模式3.工厂方法模式4.建造者模式5.原型模式6.适配器模式7.装饰器模式...

  • spring(3)动态代理事务操作与AOP

    6. AOP 6.1什么是AOP编程? 6.2 实现方式: 6.3 装饰者模式与静态代理对比: 6.4 动态代理...

  • 装饰者(Decorator)模式

    装饰者(Decorator)模式装饰模式又名包装(Wrapper)模式。装饰模式是继承关系的一个替代方案。装饰模式...

网友评论

      本文标题:6. 装饰模式

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