Java设计模式之结构型模式(小结):适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观模式 区别
相关文章:
前面介绍了五种结构型模式,他们有些类似,在使用过程中也容易搞混,我们在这就给他们做一个对比:
1、适配器模式:
适配器模式和其他三个设计模式一般不容易搞混,它的作用是将原来不兼容的两个类融合在一起,uml 图也和其他的差别很大。
UML类图:
2、装饰者模式:
装饰者模式结构上类似于代理模式,但是和代理模式的目的是不一样的,装饰者模式是用来动态地给一个对象添加一些额外的职责,装饰者模式为对象加上行为,而代理则是控制访问。
UML类图:
3、桥接模式:
桥接模式的目的是为了将抽象部分与实现部分分离,使他们都可以独立地进行变化。所以说他们两个部分是独立的,没有实现自同一个接口,这就是桥接模式与代理模式,装饰者模式的区别。
UML类图:
4、代理模式:
代理模式为另一个对象提供代理,以便控制客户对对象的访问,管理的方式有很多中,比如远程代理、虚拟代理、保护代理等,而装饰者模式是为了扩展对象。
UML类图:
5、外观模式:
外观模式提供一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。
适配器模式将一个或多个类接口变成客户端所期望的一个接口,虽然大多数资料所采用的例子中适配器只适配一个类,但是你可以适配许多类来提供一个接口让客户端访问;类似的,外观模式 也可以只针对一个拥有复杂接口的类提供简化的接口,两种模式的差异,不在于他们“包装”了几个类,而是在于它们的意图。适配器模式 的意图是,“改变”接口符合客户的期望;而外观模式的意图是,提供子系统的一个简化接口。
UML类图:
原博客链接:
https://blog.****.net/self_study/article/details/51622243