信誉好的品牌网站建设,wordpress 慢的上天,宁波响应式网站制作,小程序制作的方法有哪些一、什么是责任链模式#xff1a;
责任链模式属于行为型模式#xff0c;是为请求创建了一个接收者对象的链#xff0c;将链中每一个节点看作是一个对象#xff0c;每个节点处理的请求均不同#xff0c;且内部自动维护一个下一节点对象。
当一个请求从链式的首端发出时
责任链模式属于行为型模式是为请求创建了一个接收者对象的链将链中每一个节点看作是一个对象每个节点处理的请求均不同且内部自动维护一个下一节点对象。
当一个请求从链式的首端发出时会沿着链的路径依次传递给每一个节点对象直至有对象处理这个请求为止
二责任链模式的特性
意图 避免请求发送者与接收者耦合在一起让多个对象都有可能接收请求将这些对象连接成一条链并且沿着这条链传递请求直到有对象处理它为止 主要解决 职责链上的处理者负责处理请求客户只需要将请求发送到职责链上即可无须关心请求的处理细节和请求的传递所以职责链将请求的发送者和请求的处理者解耦了 优点 1.降低耦合度将请求的发送者和接收者解耦 2.增加系统的灵活性通过改变链内的成员或者调动他们的次序允许动态地新增或者删除处理者 3.简化了对象。使得对象不需要知道链的结构。 4.增加新的请求处理类很方便。 缺点 1.责任链太长或者处理时间过长会影响整体性能。 2.如果节点对象存在循环引用时会造成死循环导致系统崩溃。 三、责任链处理流程和应用
处理流程图 结构图 1.Handler抽象处理者定义了一个处理请求的方法。所有的处理者都必须实现该抽象类。 2.ConcreteHandler具体处理者处理它所负责的请求同时也可以访问它的后继者如果它能够处理该请求则处理否则将请求传递到它的后继者。 3.Client: 客户类 客户端发出请求调用抽象类Handler中的方法处理逻辑业务。 对象ConcreteHandler1与ConcreteHandler2继承Handler其中ConcreteHandler1中持有下一个节点ConcreteHandler2的引用 事件由1对象发出如果其处理不了则交由2对象处理
下面使用代码的方式展现
Handler.class
/*** 抽象类*/
public abstract class Handler {/*** 下一代处理者*/public Handler nextProcessor;/*** 每一个实现类处理* * param msg*/public abstract void handleRequest(String msg);}Processor1.class
/*** 处理者1*/
public class Processor1 extends Handler {Overridepublic void handleRequest(String msg) {if(msg.equals(Processor1)) {System.out.println(第一个处理者处理);} else {nextProcessor.handleRequest(msg);}}
}Processor2.class
/*** 处理者2*/
public class Processor2 extends Handler {Overridepublic void handleRequest(String msg) {if(msg.equals(Processor2)) {System.out.println(第二个处理者处理);} else {nextProcessor.handleRequest(msg);}}
}测试方法
Test
public void testProcessor() {Processor1 processor1 new Processor1();Processor2 processor2 new Processor2();processor1.nextProcessor processor2;processor2.nextProcessor processor1;processor1.handleRequest(Processor2);}运行结果
第二个处理者处理
Process finished with exit code 0示例场景
服务器后端在对前端发送过来的请求进行处理的时候一般的一个简单的过滤认证行为为 Request—请求频率验证—登录认证—访问权限—敏感词过滤—… 我们可以直接在程序代码中进行顺序流程代码编写但这样的代码耦合不易于扩展维护和复用我们可以使用责任链的形式来实现 责任链模式主要可以采用链表的形式进行实现 1.定义一个请求包装类 2.进行责任链抽象通过链表形式来实现 3.定义责任链的业务主体子类可以有多个 4.对于一个请求先进行访问频率验证再进行登录验证如果有一个验证不通过则返回异常。链式执行依次调用… 总结 责任链模式通常使用于如处理的是单个请求需要有多个请求处理者来处理不同的事情将多个处理者链接起来。处理者可通过继承一个抽象类来实现其中的处理方法并且若是其中情况成立可执行下一个请求处理者形成一个执行链。