decorate pattern 装饰模式

【装饰模式的优缺点】
装饰模式的优点:
1、比静态继承更灵活;
2、避免在层次结构高层的类有太多的特征
装饰模式的缺点:
1、使用装饰模式会产生比使用继承关系更多的对象。并且这些对象看上去都很想像,从而使得查错变得困难。

【装饰模式适用场景】
1、在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
2、处理那些可以撤消的职责,即需要动态的给一个对象添加功能并且这些功能是可以动态的撤消的。
3、当不能对生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。

时间: 2024-10-20 02:22:57

decorate pattern 装饰模式的相关文章

Decorate Pattern 装饰者模式

装饰模式的定义: 动态地将责任附加到对象向,若要扩展功能,装饰模式提供了比继承更有弹性的替代方案. 遵循的设计原则是开闭原则,也是对扩展开放,对修改关闭. 下面是类图 示例代码 /** *定义被装饰者 * */ public interface Human { public void wearClothers(); public void walkToWhere(); } /** * 定义抽象装饰者 * */ public abstract class Decorate implements H

Decorator Pattern(装饰模式)

/*Decorator.h*/ #ifndef DECORATOR #define DECORATOR class Component { public: virtual ~Component(); virtual void Operation(); protected: Component(); private: }; class ConcreteComponent:public Component { public: Decorator(Component *com); virtual ~D

第 13 章 装饰模式【Decorator Pattern】

以下内容出自:<<24种设计模式介绍与6大设计原则>> Ladies and gentlemen,May I get your attention,Please?,Now I’m going to talk about decoratorpattern.装饰模式在中国使用的那实在是多,中国的文化是中庸文化,说话或做事情都不能太直接,需要有技巧的,比如说话吧,你要批评一个人,你不能一上来就说你这个做的不对,那个做的不对,你要先肯定他的成绩,表扬一下优点,然后再指出瑕疵,指出错误的地方

认识设计模式

什么是设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样. 如果一个问题反复发生,那么这个问题的解决方案就会被有效使用,这种被频繁使用的解决方案就叫做模式.设计模式是语言独立(开发语言)的,主要用来解决面向对象设计的一般问题.当你设计一

java设计模式详解

设计模式: 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式是为了可重用代码.让代码更容易被他人理解并且保证代码可靠性. 狭义的设计模式是指GoF在<设计模式:可复用面向对象软件的基础>一书中所介绍的23种经典设计模式,不过设计模式并不仅仅只有这23种,随着软件开发技术的发展,越来越多的新模式不断诞生并得以应用. 设计模式可分为:创建型(Creational):创建型模式主要用于描述如何创建对象 结构型(Structura

[Java 8] 使用Lambda表达式进行设计

使用Lambda表达式进行设计 在前面的几篇文章中,我们已经见识到了Lambda表达式是如何让代码变的更加紧凑和简洁的. 这一篇文章主要会介绍Lambda表达式如何改变程序的设计,如何让程序变的更加轻量级和简洁.如何让接口的使用变得更加流畅和直观. 使用Lambda表达式来实现策略模式 假设现在有一个Asset类型是这样的: public class Asset { public enum AssetType { BOND, STOCK }; private final AssetType ty

我(webabcd)的文章索引

[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow 重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button,

第8章 装饰模式(Decorator Pattern)

原文 第8章 装饰模式(Decorator Pattern) 概述: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 装饰模式的特点: (1) 装饰对象和真实对象有相同的接口.这样客户端对象就可以和真实对象相同的方式和装饰对象交互. (2) 装饰对象包含一个真实对象的引用(reference) (3) 装饰对象接受所有来自客户端的请求.它把这些请求转发给真实的对象. (4) 装饰对象可以在转发这些请求以前或以后增加

装饰模式(Decorate)-今天你要秀你的哪一面?

装饰模式可以动态的加入程序功能,避免因为过度子类化带来的耦合,相比较用继承方式的静态,装饰更为灵活. 意图 动态地给一个对象增加一些额外的职责.就增加功能而言,Decorator模式比生成子类更为灵活. --GOF 动态是指在程序运行时来决定,而静态则是在编译时就已经确定,例如使用组合的方式,可以动态决定功能,但如果使用继承,则是在编译时就要确定,这也就是在一些场景中推荐使用组合的原因.装饰模式与我们上一篇所讲的桥接模式,都是用了组合方式来解决因为多个变化维度导致的多继承的问题. 解决的是什么问