结构模式对比

Posted snifferhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构模式对比相关的知识,希望对你有一定的参考价值。

代理模式、适配器模式和装饰器模式,在实现上差异不大。几乎都是以继承、依赖或者组合的方式,将源类纳入目标代理、适配和装饰类。
所以简要整理一下他们的区别。

- 代理模式 适配器模式 装饰器模式
解决问题 想在访问一个类时做一些控制 系统需要使用现有的类,而此类的接口不符合系统的需要。
想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。
通过接口转换,将一个类插入另一个类系中。
在不想增加很多子类的情况下扩展类。
关键代码 实现与被代理类组合 适配器继承或依赖已有的对象,实现想要的目标接口 在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好
差异 适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。
装饰器模式为了增强功能,而代理模式是为了加以控制。
适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。 可代替继承。




以上是关于结构模式对比的主要内容,如果未能解决你的问题,请参考以下文章

结构模式对比

转: IO设计模式:Reactor和Proactor对比

设计模式 结构型模式 -- 代理模式(动态代理(CGLIB动态代理)三种代理的对比(静态代理动态代理(JDK代理和CGLIB代理)优缺点使用场景))

Redis单例主从模式sentinel以及集群的配置方式及优缺点对比

数据库mongodb和mysql的对比

MS SQLServer数据库结构及数据对比