- 浏览: 27055 次
- 性别:
- 来自: 成都
最新评论
- 装饰模式是逐层装饰,譬如齐天大圣,七十二般变化,大圣本尊,鱼虫,齐天大圣为抽象构件,大圣本尊为具体构件,七十二般变化为装饰角色,鱼虫为具体装饰角色
- 装饰角色必须和抽象构件接口一致,七十二般变化就必须保证和齐天大圣接口一致,也就是实现齐天大圣接口;
- 鱼由于继承七十二般变化,所以有如下层次结构:鱼即为七十二般变化即为齐天大圣,这也是符合实际的情况的,当然此鱼必须是齐天大圣用七十二般变化所化;
- 由于有七十二般变化的装饰角色在,只要继承该装饰角色,大圣就可以化为花鸟虫鱼,无所不能;
- 由于系统中,抽象构件是所有类的父类或者实现,所以尽量保证抽象构件类的轻量级,最好是接口;
- 在简化模式下,齐天大圣和大圣本尊会转为一个类,那么七十二般变化则将继承该类;
- 如果只有一种变化,那么七十二般变化和鸟也可以作为一个类,此时为最简单的装饰模式;
- 语法上来说:装饰角色类必须在类里面放置一个抽象构件的引用,并实现抽象构件的相应方法,那么保证继承装饰角色的具体装饰角色类也是完整的。(该点需要琢磨)
- 本尊非本尊,鱼非鱼,但是大圣是本尊,大圣也是鱼;也就是说具体构件不能直接实例化为具体构件,具体装饰角色也不能实例化为具体装饰角色,因为其本质还是抽象构件;
- 透明的装饰模式必须保证具体装饰角色里面没有抽象构件接口未提供的新方法。 鱼者能游不能走,大圣能走不能游,在鱼方法中定义走即为游,那么也就是不管具体的装饰角色如何实现,大圣照样走就是了;
- 半透明的装饰模式里面含有新方法,但是客户端不调用这些新方法,那么仍然是透明的;大圣所化之鱼能游,然吾等仍视之为大圣,故不知其能也;
发表评论
-
抽象工厂模式AbstractFactory
2009-04-09 22:23 684抽象工厂模式是对工厂方法模式的一个很大的扩充。 工厂方法模 ... -
多例模式Multiton
2009-04-09 22:22 761多例模式有多个实例 多例模式必须自己创建,管理自己的实例, ... -
单实例模式Singleton
2009-04-09 22:20 1268有且只能有一个实例,必须给其他角色提供该实例 推荐使用 避 ... -
合成模式Composite
2009-04-09 22:19 765合成模式的组成为:组件,树枝,树叶 其中组件接口是整个系统 ... -
建造模式Builder
2009-04-09 22:18 737完整的建造模式涉及如下四个角色:抽象建造者(接口),具体建造 ... -
代理模式Proxy
2009-04-09 22:17 686在用户和真实对象之间加了一层保护,用户不直接操作真实对象,而 ... -
享元模式Flyweight
2009-04-09 22:16 795享元模式是对于某个对象的共享的模式,譬如String,对于相 ... -
门面模式Facade
2009-04-09 22:16 726门面模式应该应用在子系统和子系统之间。门面模式类似于适配器模 ... -
桥梁模式Bridge
2009-04-09 22:15 1258桥梁模式是将抽象化和 ... -
不变模式Immutable
2009-04-09 22:14 873不变模式只涉及一个类,分为弱不变模式和强不变模式。 弱不变 ... -
策略模式Strategy
2009-04-09 22:14 669策略模式是对算法的封装,把使用算法和算法本身分开。 策略模 ... -
模板方法TemplateMethod
2009-04-09 22:13 673模板方法有抽象模板和具体模板方法组成。抽象模板定义了一个或者 ... -
观察者模式Observer
2009-04-09 22:12 555观察者模式分为:抽象主题,抽象观察者,具体主题,具体观察者。 ... -
责任链模式Chain of Responsibility
2009-04-09 22:11 602责任链模式分为两个角色:抽象处理者,具体处理者。抽象处理者一 ... -
命令模式Command
2009-04-09 22:11 613命令模式把发出命令的责任和执行命令的责任分开,委派给不同的对 ... -
访问者模式Visitor
2009-04-09 22:10 785什么是访问者模式,就是我们通过JAVA的自动类型转换,实现多 ... -
解释器模式Interpreter
2009-04-09 22:09 703解释器模式是针对一些一再发生的问题的解决的一种模式。譬如浏览 ... -
调停者模式Mediator
2009-04-09 22:08 783调停者模式让我们思考一个系统怎样设计,如何设计才更好。调停者 ...
相关推荐
设计模式C++学习之装饰模式(Decorator)
动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。
C#设计模式之Decorator 装饰模式,pdf+视频教学,实例演示,易学易用~~
13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、访问者模式VISITOR PATTERN 19、状态模式 20、原型模式 21...
学习java 装饰模式(decorator)非常好的例子
5、装饰模式(Decorator) 用意:动态地给一个对象增加其它职责,比继承实现灵活。
装饰者模式(Decorator Pattern)是一种结构型设计模式,它的定义是在不改变原有对象结构的基础上,动态地给该对象增加一些职责(即增加其额外功能)。这种模式允许向一个现有的对象添加新的功能,同时又不改变其...
装饰器(Decorator)模式 详细教程,简明易懂,非常清晰的,附带有代码示例。
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第10节:结构型模式Decorator装饰模式
C#面向对象设计模式 Decorator 装饰模式 视频讲座下载
主要为大家详细介绍了.net设计模式之装饰模式Decorator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Head First 设计模式 (三) 装饰者模式(decorator pattern) C++实现 VS2012 下通过
装饰模式.doc 装饰模式.doc 装饰模式.doc
NULL 博文链接:https://chuanwang66.iteye.com/blog/1325151
NULL 博文链接:https://xiangtui.iteye.com/blog/1033790
主要介绍了Java设计模式之装饰模式(Decorator模式)介绍,本文讲解了为什么使用Decorator、如何使用装饰模式、Jive中的Decorator实现等内容,需要的朋友可以参考下
主要为大家详细介绍了C++设计模式之装饰模式Decorator的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
装饰模式的示例代码和文档,学习装饰模式的参考资料。
主要为大家详细介绍了java装饰模式Decorator Pattern,这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装,对装饰器模式感兴趣的小伙伴们可以参考一下
C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式) (Level 300)