1.定义:
多个处理器对象连成一串,请求在这条链上传递,由该处理这个请求的处理器来处理。发出请求的客户端并不知道哪个对象处理请求。责任链可能是一条直线、一个环链或者一个树结构的一部分。
2. 优点
将请求和处理分开,请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌。
3. 缺点
性能问题,每个请求都是从链头遍历到链尾,当链比较长时,性能是一个问题。还有调试不方便。
4.个人理解
不同逻辑封装成不同对象,形成一个链条或者环,依次对数据进行过滤筛选。比如学校请假,我递交假条给——》班长给——》班主任给——》教务处主任。这就形成了一个链条,如果班主任心情好(这里的心情好就是过滤准则),给我批了假条(就相当于输出的结果),反之班主任心情不好,就将假条直接提交教务处主任,然后就由教务处主任处理。教务处主任直接把假条批准,或直接递给我说理由不充分修改。这就形成了一个环形链条。
5.代码展示
简单介绍:
例子写的是模拟注册时校验的逻辑,创建了几个过滤器。依次进行过滤,得出结果:注册成功,或者打印出,出错的信息。