设置模式9(装饰者,责任链,桥接,访问者)

装饰者模式Decorator

    通过组合的方式动态的为对象透明的增加功能,

    本质是上功能的动态组合

XE10版本的装饰都有两个抽象类,并有相互继承的管理,实现类与实现的分离

 

目的是为了动态的增加功能

改变对象的外观

也可以认为是动态的算法骨架,但也只是模拟而已,两者的设计目的和原本的功能及本质的思想都是不一样的

 

组合模式

目的是管理组合对象和子对象,为他们提供统一的接口

     

策略模式

 

改变的是对象的内核,可以结合使用

   

模板方法

   

固定的算法骨架

 
         
         

责任链模式 chain of responsibility

为了避免发送者与接收者的耦合关系,将信息连成一个链,延着其传递消息,直到被处理

本质是分离职责,动态组合

对象处理相应的请求后即停止

   

如果执行请求后,继续传递就类似装饰者,但是两都的目的和手段都不同

 

组合模式

可以结合使用

   

装饰者

 

可以互相模仿功能

 

策略模式

   

可以在责任链中的某一环使用策略来决定其实现

桥接模式

分离抽象与实现

,使其可以独立变化

         

策略模式

分离算法,使其可以相互替换

     

状态模式

 

目的是封闭对象对应的行为,并在内部改变对象的行为

   

模板方法

       

抽象工厂

     

可以实现桥接中的接口对象

适配器

使不同接口的类可以一起工作

     

访问者模式

作用在对象结构中各元素的操作,它使你可以不改变元素的类的前提下定义作用于这些元素的操作

使用了二次分发

Element.Accpet(Ivisiter)

{

    Ivisiter.VisiElement(self);

}

本质是为了预留通路,回调实现

   

为元素添加新功能

 

组合模式

通常可以在组合的元素中预留下扩展接口

   

装饰者

 

增强对象的原有功能

 

解释器

   

抽象语法树由组合模式构成,如果需要为其增加新功能,以实现同一结构对象的不同解释与执行,就可以预留下访问者的接口

酒肉穿肠过 佛祖心中留 世人若学我 如同入魔道
原文地址:https://www.cnblogs.com/jspdelphi/p/7807610.html