Java23种设计模式——16.行为型模式之职责链模式

Java中除去有设计原则之外,还有23中设计模式。

这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题。

并且在这些模式中,可以说是将语言的使用体现的淋漓尽致。

那我们今天要学习  行为型模式  中的  职责链模式  !

职责链模式

先来百度百科一下什么叫职责链模式

通过百度百科我们可以知道,职责链模式就是客户端发起一个请求,或者调用,然后对应的链上的对象开始去处理请求,而这一切都是不影响客户端的情况下动态完成组织和分配的

职责链模式的定义与特点

职责链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

(PS:责任链 = 职责链)

职责链模式的优点:

1. 增强了系统的可扩展性。

2. 降低了对象之间的耦合度。

3. 责任分担。

缺点:

1. 能保证每个请求一定被处理。

2. 对比较长的职责链,请求的处理可能涉及多个处理对象,系统性能将受到一定影响。

职责链模式的结构与实现

先来说一下这个职责链模式中有那些角色

1. 抽象处理者角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。

2. 具体处理者角色:实现抽象处理者的处理方法,判断能否处理本次请求,如果可以处理请求则处理,否则将该请求转给它的后继者。

3. 客户类角色:创建处理链,并向链头的具体处理者对象提交请求,它不关心处理细节和请求的传递过程。

 

知道了这个之后,我们就可以弄一个例子感受一下职责链模式了

需求:报效申请,先给项目组组长,然后给总监,然后副总,最后财务,好比我们有这么的一个链,我们来实现一下

第一步:

首先定义一个抽象处理者的对象

有了这个还不行,我们还需要在里面定义下一个审批的领导是谁,还有就是当前领导需要执行的方法

第二步:

我们再来创建具体的领导,这里我们需要创建四个领导(这里我就粘贴一个领导,其他的类似)

其他的也和这个类似

测试:

下面我们弄一个测试类来进行测试一下

这样就OK了,我们来调用一下

是不是,OK的啊,大家感受一下

 

OK,就到这里,大家好好看一下。多多练习。有问题可以联系我QQ:2100363119

欢迎大家访问我的个人网站:lemon1234.com 感谢大家留言

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页