项目中有个功能模块,多人签署同一份文件, 流程分为顺序签署、无序签署和任一签署等。
业务逻辑比较复杂,今天自己尝试着引入设计模式,于是就先实现“顺序签署”功能吧。
1.Bridge模式。
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱藕,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化 存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化 抽象化给出的具体实现,就是实现化。
脱耦 所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。
2.职责链模式
GoF对职责链模式的定义为:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
通俗一点说就是,当客户提交一个请求时,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不知道哪一个对象将会处理它。
3.代码的整体类图关系为:
相关推荐
桥接模式Demo
所有模式都可分为类模式和对象模式两种,类模式是继承,对象模式是委托,而桥接模式和策略模式都是将任务委托给另外一个接口去实现,那么两者的区别什么呢?
Android桥接模式demo,同步文章地址:http://blog.csdn.net/qq_28690547/article/details/51144783
最通俗易懂的桥接模式demo,希望大家能有所得!谢谢~!
桥接模式和装饰模式,设计模式实验报告,BlueJ
本资源主要介绍目前网络连接中的桥接模式和路由模式的不同点和基本原理。解决在组网时碰到的方式选择问题。
桥接模式 桥接模式
利用桥接模式完成以下实例: 1、编辑与作者。出版社的编辑负责策划图书,并遴选作者完成图书的编著,然后根据图书的印张发布图书。作者负责完成图书的编著工作。...本实例使用桥接模式来模拟毛笔的使用过程。
Bridge 桥接模式(结构型模式)视频
桥接模式 C++ 实现
设计模式 java 桥接模式
VMware 15虚拟机桥接模式无法上网问题 步骤 1:在设置中找到 网络和internet—>>更改适配器选项—–>>以太网 查看 共享网络给虚拟机(有些电脑不用) 步骤2:查看VMware虚拟网络编辑器的VMnet0桥接模式设置 ...
C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) 体验课程
图片浏览器的接口设计-桥接...简单地说,图像的结构和表现是两个不同的地方,应该让它们独立地根据操作系统的不同而不同,桥接模式正好可以在此发挥作用。请给出一个示意性的图像浏览器系统,以说明桥接模式的用法。
免费提供个人设计模式简易代码,代码结构层次清晰,并且内含基本所有的注释,非常有利于初学者学习设计模式
设计模式专题之(十)桥接模式---设计模式桥接模式示例代码(python--c++)
设计模式 - 桥接模式
桥接模式的例子源码。这个源码因完成仓促,仅用来解释说明桥接模式含义,代码规范稍有欠缺,仅供参考。