设计模式学习笔记--模式比较(五)

1    模式比较

创建类模式描述如何创建对象,结构型模式主要涉及到如何组合类和对象以获得更大的结构,行为模式关注如何管理对象的行为。但是实际中还是有重叠的,会出现一种模式适用,另外一种模式也适用的情况。

1.1  策略模式VS桥梁模式

首先,这两种模式的结构是否形似。

策略模式和桥梁模式如此相似,只能从他们的意图上去分析。策略模式是一个行为模式,旨在封装一系列的行为;而桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象部分和实现部分,它的前提是不破坏封装,让抽象的部分和实现部分可以独立的变化。

 

1.2  门面模式VS中介者模式

门面模式为复杂的子系统提供一个统一的访问界面,它定义了一个高层接口,该接口使得子系统更加容易使用,避免外部模块深入到子模块内部而产生与子模块细节耦合的问题。中介者模式使用一个中介对象来封装一系列同事对象的交互行为,使各个对象之间不再显示的应用,从而使其耦合松散,建立一个可拓展的应用框架。

门面模式和中介者模式的区别:门面模式以封装和隔离为主要任务,而中介者模式以调和同事之间的关系为主,因为要调和,所以具有了部分的业务逻辑控制,两者的主要区别如下:

l  功能区别

门面模式只是增加了一个门面,它对子系统没有增加任何功能,子系统脱离门面可以照常运行。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可脱离中介者独立存在。

l  知晓状态区别

对门面模式来说,子系统不知道门面存在,而对中介者来说,每个同事都知道中介者存在。

l  封装程度不同

门面模式是一种简单的封装,所有请求都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务。

 

1.3  包装模式PK

所谓包装模式,就是存在这样的角色,它本身并不干活,而是充当黔首作用,并不处理问题,而是将问题让其他角色处理,比如代理模式,门面模式等。包装模式是一组模式而不是一个模式。包括如下:门面模式、装饰模式、适配器模式、代理模式、桥梁模式。

五个包装模式在系统中经常遇到的模式,他们具有相似的特征:都是通过委托的方式对一个对象或一系列推向实行包装,有了包装,设计的系统才更加灵活、稳定,并且极具扩展性。

代理模式主要用在不希望展示一个对象内部细节的场景中,比如一个远程服务不需要暴露所有细节,通过添加一个代理类,可以轻松实现被代理类的功能封装。

装饰模式是一种特殊的代理模式,它倡导在不改变接口的前提下为对象增强功能,或者动态添加额外职责。

适配器模式主要的意图就是接口转换,把一个对象的接口转换成系统希望的另外一个接口,从而提供系统的稳定性和可靠性。

桥梁模式是在抽象层产生耦合,解决自行扩展的问题,它可以使两个耦合关系的对象互不影响地扩展。

门面模式是一个粗粒度的封装,它提供一个方便访问子系统的接口,不具任何的业务逻辑,仅仅是一个访问复杂系统的快速通道,没有它,系统照样运行。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值