项目中有个功能模块,多人签署同一份文件, 流程分为顺序签署、无序签署和任一签署等。
业务逻辑比较复杂,今天自己尝试着引入设计模式,于是就先实现“顺序签署”功能吧。
1.Bridge模式。
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱藕,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化 存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化 抽象化给出的具体实现,就是实现化。
脱耦 所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。
2.职责链模式
GoF对职责链模式的定义为:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
通俗一点说就是,当客户提交一个请求时,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不知道哪一个对象将会处理它。
3.代码的整体类图关系为:
相关推荐
桥接模式和策略模式是软件设计模式中的两种重要模式,它们在实现上有着相似之处,但各自的应用场景和设计理念有所不同。下面将详细阐述这两种模式的特点、区别以及它们在实际编程中的应用。 首先,桥接模式(Bridge...
在"桥接模式Demo"中,我们通常会看到以下组件: 1. **抽象接口(Abstraction)**:这是桥接模式的核心抽象部分,定义了客户端需要的接口。例如,我们可以有一个`Device`接口,它声明了一些操作设备的基本方法,如`...
"ADSL 桥接模式和路由模式的区别" 在 ADSL 宽带接入方式中,桥接模式和路由模式是两种常见的工作模式。_bridge 模式是 ADSL ROUTER 的默认工作模式,主要用于单台电脑的接入,需要代理服务器或网关设备将局域网中的...
2. 当抽象和实现之间存在明显的依赖关系时,使用桥接模式可以降低这种依赖,使两者可以独立演化。 3. 当希望避免由于类的爆炸性增长导致的类数量过多问题时,可以使用桥接模式。 视频资源“7.Bridge 桥接模式(结构...
**Android桥接模式详解** 桥接模式是一种设计模式,它将抽象部分与实现...通过`ImplementorDemo`的例子,我们可以看到如何使用桥接模式来分离动画效果的抽象和实现,使其能独立变化,从而实现更加灵活的动画管理系统。
- 可能还包含了一些测试类或示例代码,用于展示如何使用桥接模式来创建和操作对象。 通过使用桥接模式,我们可以做到: 1. 分离抽象和实现:抽象部分和实现部分可以独立进行扩展,降低了代码的耦合度。 2. 支持多...
在这个“桥接模式demo”中,我们可能看到一个具体的示例,如何通过该模式将接口或抽象类的实现解耦,以便于扩展和维护代码。 在传统的软件开发中,抽象类往往与具体实现绑定在一起,当需要改变或增加新的实现时,就...
桥接模式和装饰模式,设计模式实验报告,BlueJ
使用桥接模式时,需要注意以下几点: - 设计初期,应识别出抽象部分和实现部分,合理划分职责。 - 避免过度设计,只有在需要时才引入桥接模式,因为过度的抽象会增加系统的复杂性。 - 考虑到未来的扩展性,确保抽象...
桥接模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立进行变化。在C++中,桥接模式的应用有助于降低系统的耦合度,提高代码的可扩展性和可维护性。以下是对桥接模式及其C++实现的详细解释。 首先...
桥接模式(Bridge Pattern)是设计模式中的一种结构型模式,它主要解决的是在软件设计中,当抽象和实现之间存在紧密耦合时,如何使这两者能够独立地变化。这种模式通过引入一个抽象层来分离接口和实现,使得它们可以...
VMWare 6.0 桥接模式虚拟机网络配置 ...VMWare 6.0 桥接模式虚拟机网络配置是一种简单而又重要的网络连接模式,通过正确的配置,可以让虚拟机正常地连接到网络中,并且可以与主机和其他虚拟机进行通信。
但使用桥接模式,我们可以将形状和填充方式作为独立的组件: - 抽象部分(Abstraction):定义一个图形接口,包含绘制图形的方法。 - 扩展抽象部分(Refined Abstraction):实现图形接口,例如具体圆形类和具体...
在C#中,我们可以使用类和接口来实现桥接模式。例如,假设我们正在设计一个绘图应用,有多种图形(圆形、矩形等)和多种颜色(红色、蓝色等)可以选择。我们可以创建一个`Shape`接口作为抽象接口,一个`Color`接口...
桥接模式的主要组成部分包括抽象部分(Abstraction)、具体抽象部分(Concrete Abstraction)、实现部分(Implementation)和具体实现部分(Concrete Implementation)。以下是这些角色的详细解释: 1. 抽象部分...
例如,一个图形库可能有多种绘制方式(如线条、填充等),每种方式又有多种颜色可以选择,这时就可以使用桥接模式,让绘制方式和颜色作为两个独立的维度,通过桥接来组合出不同的效果。 在编程中,使用桥接模式可以...
桥接模式是软件设计模式中的一种结构型模式,它的主要目的是为了实现抽象和实现的解耦,使得两者可以独立地进行扩展。在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接...
桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...
利用桥接模式完成以下实例: 1、编辑与作者。出版社的编辑负责策划图书,并遴选作者完成图书的编著,然后根据图书的印张发布图书。作者负责完成图书的编著工作。...本实例使用桥接模式来模拟毛笔的使用过程。