Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别

相关文章:

Java设计模式(六)之结构型模式:适配器模式

Java设计模式(七)之结构型模式:装饰者模式

Java设计模式(八)之结构型模式:代理模式

Java设计模式(九)之结构型模式:外观模式

Java设计模式(十)之结构型模式:桥接模式

前面介绍了五种结构型模式,他们有些类似,在使用过程中也容易搞混,我们在这就给他们做一个对比:

 

1、适配器模式:

适配器模式和其他三个设计模式一般不容易搞混,它的作用是将原来不兼容的两个类融合在一起,uml 图也和其他的差别很大。 

UML类图:

Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别_第1张图片

2、装饰者模式:

装饰者模式结构上类似于代理模式,但是和代理模式的目的是不一样的,装饰者模式是用来动态地给一个对象添加一些额外的职责,装饰者模式为对象加上行为,而代理则是控制访问。

UML类图:

Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别_第2张图片

3、桥接模式:

桥接模式的目的是为了将抽象部分与实现部分分离,使他们都可以独立地进行变化。所以说他们两个部分是独立的,没有实现自同一个接口,这就是桥接模式与代理模式,装饰者模式的区别。

UML类图:

Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别_第3张图片

4、代理模式:

代理模式为另一个对象提供代理,以便控制客户对对象的访问,管理的方式有很多中,比如远程代理、虚拟代理、保护代理等,而装饰者模式是为了扩展对象。

UML类图:

Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别_第4张图片

5、外观模式:

外观模式提供一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。

适配器模式将一个或多个类接口变成客户端所期望的一个接口,虽然大多数资料所采用的例子中适配器只适配一个类,但是你可以适配许多类来提供一个接口让客户端访问;类似的,外观模式 也可以只针对一个拥有复杂接口的类提供简化的接口,两种模式的差异,不在于他们“包装”了几个类,而是在于它们的意图。适配器模式 的意图是,“改变”接口符合客户的期望;而外观模式的意图是,提供子系统的一个简化接口。 

UML类图:

Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别_第5张图片

 

原博客链接:

https://blog.csdn.net/self_study/article/details/51622243

 

你可能感兴趣的:(Java设计模式)