`
machunlin
  • 浏览: 27368 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

流程签署使用桥接模式和职责链模式的demo

 
阅读更多

    项目中有个功能模块,多人签署同一份文件, 流程分为顺序签署、无序签署和任一签署等。

    业务逻辑比较复杂,今天自己尝试着引入设计模式,于是就先实现“顺序签署”功能吧。 

 

1.Bridge模式。 

    【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱藕,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化    存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化    抽象化给出的具体实现,就是实现化。
脱耦     所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
    将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。
 


 
 
 
2.职责链模式
     GoF对职责链模式的定义为:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
      通俗一点说就是,当客户提交一个请求时,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不知道哪一个对象将会处理它。



 
 
 
3.代码的整体类图关系为:


 
 
  • 描述: chains
  • 大小: 20.4 KB
  • 描述: bridegs
  • 大小: 29.3 KB
  • 大小: 59.1 KB
分享到:
评论

相关推荐

    桥接模式和策略模式的区别,内含可运行代码和两者详细区别

    桥接模式和策略模式是软件设计模式中的两种重要模式,它们在实现上有着相似之处,但各自的应用场景和设计理念有所不同。下面将详细阐述这两种模式的特点、区别以及它们在实际编程中的应用。 首先,桥接模式(Bridge...

    桥接模式Demo

    在"桥接模式Demo"中,我们通常会看到以下组件: 1. **抽象接口(Abstraction)**:这是桥接模式的核心抽象部分,定义了客户端需要的接口。例如,我们可以有一个`Device`接口,它声明了一些操作设备的基本方法,如`...

    ADSL桥接模式和路由模式的区别

    "ADSL 桥接模式和路由模式的区别" 在 ADSL 宽带接入方式中,桥接模式和路由模式是两种常见的工作模式。_bridge 模式是 ADSL ROUTER 的默认工作模式,主要用于单台电脑的接入,需要代理服务器或网关设备将局域网中的...

    Bridge 桥接模式(结构型模式)

    2. 当抽象和实现之间存在明显的依赖关系时,使用桥接模式可以降低这种依赖,使两者可以独立演化。 3. 当希望避免由于类的爆炸性增长导致的类数量过多问题时,可以使用桥接模式。 视频资源“7.Bridge 桥接模式(结构...

    Android桥接模式demo

    **Android桥接模式详解** 桥接模式是一种设计模式,它将抽象部分与实现...通过`ImplementorDemo`的例子,我们可以看到如何使用桥接模式来分离动画效果的抽象和实现,使其能独立变化,从而实现更加灵活的动画管理系统。

    设计模式---桥接模式

    - 可能还包含了一些测试类或示例代码,用于展示如何使用桥接模式来创建和操作对象。 通过使用桥接模式,我们可以做到: 1. 分离抽象和实现:抽象部分和实现部分可以独立进行扩展,降低了代码的耦合度。 2. 支持多...

    桥接模式demo

    在这个“桥接模式demo”中,我们可能看到一个具体的示例,如何通过该模式将接口或抽象类的实现解耦,以便于扩展和维护代码。 在传统的软件开发中,抽象类往往与具体实现绑定在一起,当需要改变或增加新的实现时,就...

    桥接模式和装饰模式,设计模式实验报告,BlueJ

    桥接模式和装饰模式,设计模式实验报告,BlueJ

    桥接模式-设计模式

    使用桥接模式时,需要注意以下几点: - 设计初期,应识别出抽象部分和实现部分,合理划分职责。 - 避免过度设计,只有在需要时才引入桥接模式,因为过度的抽象会增加系统的复杂性。 - 考虑到未来的扩展性,确保抽象...

    Vmware Ubuntu虚拟机桥接模式的使能

    Vmware Ubuntu虚拟机桥接模式的使能是指在Vmware Workstation虚拟机中,使用桥接模式将虚拟机的网络连接到宿主机的物理网络上,从而使虚拟机可以直接访问外部网络和宿主机网络。 在Vmware Workstation虚拟机中,...

    桥接模式 C++ 实现

    桥接模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立进行变化。在C++中,桥接模式的应用有助于降低系统的耦合度,提高代码的可扩展性和可维护性。以下是对桥接模式及其C++实现的详细解释。 首先...

    设计模式之桥接模式BridgePattern

    桥接模式(Bridge Pattern)是设计模式中的一种结构型模式,它主要解决的是在软件设计中,当抽象和实现之间存在紧密耦合时,如何使这两者能够独立地变化。这种模式通过引入一个抽象层来分离接口和实现,使得它们可以...

    VMWare 6.0桥接模式虚拟机网络配置

    VMWare 6.0 桥接模式虚拟机网络配置 ...VMWare 6.0 桥接模式虚拟机网络配置是一种简单而又重要的网络连接模式,通过正确的配置,可以让虚拟机正常地连接到网络中,并且可以与主机和其他虚拟机进行通信。

    设计模式的桥接模式的例子

    但使用桥接模式,我们可以将形状和填充方式作为独立的组件: - 抽象部分(Abstraction):定义一个图形接口,包含绘制图形的方法。 - 扩展抽象部分(Refined Abstraction):实现图形接口,例如具体圆形类和具体...

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式)

    在C#中,我们可以使用类和接口来实现桥接模式。例如,假设我们正在设计一个绘图应用,有多种图形(圆形、矩形等)和多种颜色(红色、蓝色等)可以选择。我们可以创建一个`Shape`接口作为抽象接口,一个`Color`接口...

    设计模式 - 桥接模式

    桥接模式的主要组成部分包括抽象部分(Abstraction)、具体抽象部分(Concrete Abstraction)、实现部分(Implementation)和具体实现部分(Concrete Implementation)。以下是这些角色的详细解释: 1. 抽象部分...

    结构型模式之桥接模式(bridge)

    例如,一个图形库可能有多种绘制方式(如线条、填充等),每种方式又有多种颜色可以选择,这时就可以使用桥接模式,让绘制方式和颜色作为两个独立的维度,通过桥接来组合出不同的效果。 在编程中,使用桥接模式可以...

    设计模式之桥接模式,内含可运行代码

    桥接模式是软件设计模式中的一种结构型模式,它的主要目的是为了实现抽象和实现的解耦,使得两者可以独立地进行扩展。在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接...

    设计模式之桥接模式

    桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...

Global site tag (gtag.js) - Google Analytics