标签:二次 模拟 外观 结合 lsp 解释 col span body
通过组合的方式动态的为对象透明的增加功能,
本质是上功能的动态组合
XE10版本的装饰都有两个抽象类,并有相互继承的管理,实现类与实现的分离
目的是为了动态的增加功能 |
改变对象的外观 |
也可以认为是动态的算法骨架,但也只是模拟而已,两者的设计目的和原本的功能及本质的思想都是不一样的 |
|||
组合模式 |
目的是管理组合对象和子对象,为他们提供统一的接口 |
||||
策略模式 |
改变的是对象的内核,可以结合使用 |
||||
模板方法 |
固定的算法骨架 |
||||
为了避免发送者与接收者的耦合关系,将信息连成一个链,延着其传递消息,直到被处理
本质是分离职责,动态组合
对象处理相应的请求后即停止
如果执行请求后,继续传递就类似装饰者,但是两都的目的和手段都不同 |
|||
组合模式 |
可以结合使用 |
||
装饰者 |
可以互相模仿功能 |
||
策略模式 |
可以在责任链中的某一环使用策略来决定其实现 |
分离抽象与实现
,使其可以独立变化
策略模式 |
分离算法,使其可以相互替换 |
|||
状态模式 |
目的是封闭对象对应的行为,并在内部改变对象的行为 |
|||
模板方法 |
||||
抽象工厂 |
可以实现桥接中的接口对象 |
|||
适配器 |
使不同接口的类可以一起工作 |
作用在对象结构中各元素的操作,它使你可以不改变元素的类的前提下定义作用于这些元素的操作
Element.Accpet(Ivisiter)
{
Ivisiter.VisiElement(self);
}
本质是为了预留通路,回调实现
为元素添加新功能 |
|||
组合模式 |
通常可以在组合的元素中预留下扩展接口 |
||
装饰者 |
增强对象的原有功能 |
||
解释器 |
抽象语法树由组合模式构成,如果需要为其增加新功能,以实现同一结构对象的不同解释与执行,就可以预留下访问者的接口 |
标签:二次 模拟 外观 结合 lsp 解释 col span body
原文地址:http://www.cnblogs.com/jspdelphi/p/7807610.html