现在的位置: 首页 > 综合 > 正文

设计模式9

2013年08月21日 ⁄ 综合 ⁄ 共 1415字 ⁄ 字号 评论关闭

17、        桥接模式

桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立的变化。

a)      优点:

                       i.              多角度分离让其独立变化,减少了它们之间的耦合。

b)      桥接模式的应用:

                       i.              当系统需要多角度去分类实现对象,而只用继承会造成大量的类增加,不能满足开放-封闭原则时,就应该要考虑用桥接模式了。

18、        命令模式

命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

a)      优点:

                       i.              它能较容易地设计一个命令队列。

                     ii.              在需要的情况下,可以较容易地将命令记入日志。

                  iii.              允许接收请求的一方决定是否要否决请求。

                  iv.              可以容易地实现对请求的撤销和重做。

                     v.              由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易。

                  vi.              命令模式把请求一个操作的对象与知道怎么执行一个操作的对象的对象分割开。

19、        职责链模式

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

a)      优点:

                       i.              责任的分担。每个类需要处理自己该处理的工作(不该处理的传递给下一个对象完成)明确各类的责任范围,符合类的最小封装原则。

                     ii.              可以根据需要自由组合工作流程。如工作流程发生变化,可以通过重新分配对象链便可适应新的工作流程。

                  iii.              类与类之间可以松耦合的形式加以组织。

b)      缺点:

                       i.              因为处理时以链的形式在对象间传递消息,根据实现方式不同,有可能会影响处理的速度。

c)       职责链模式的应用:

                       i.              对象链的组织。需要将某任务的所有职责执行对象以链的形式加以组织。

                     ii.              消息或请求的传递。将消息或请求沿着对象链传递,以让处于对象链中的对象得到处理机会。

                  iii.              处于对象链中的对象的职责分配。不同的对象完成不同的职责。

                  iv.              任务的完成。处于对象链的末尾的对象结束任务并停止消息或请求的继续传递。

抱歉!评论已关闭.