设计模式——责任链模式
来源:互联网 发布:rap编曲知乎 编辑:程序博客网 时间:2024/06/05 14:31
责任链(Chain of Responsibility)模式:将要处理请求的对象连成一条链,让请求沿着这条链传递,直到有一个对象处理它为止。
Handler:定义一个处理请求的接口,实现后继链;
ConcreteHandler:处理它所负责的请求,保存它的后继者,如果不能处理请求,则转发给后继者;
Client:向链上的具体处理者(Concretehandler)对象提交请求。
适用性:
(1)有多个对象可以处理同一个请求;
(2)在不明确指定接受者的情况下,向多个对象中的一个提交请求;
(3)可处理一个请求的对象集合应该动态指定;
优点:
(1)降低耦合度;
(2)增强了给对象指派职责的灵活性;
缺点:
(1)性能问题,每个请求都从链头开始,如果链比较长,性能消耗大;
(2)如果链条比较长,会造成调试不方便;
(3)不保证请求一定被接受。
实现:
(1)可以在Handler中设置最大链条数;
(2)后继者可以使用新的链接,也可以使用已有链接;
(3)当业务逻辑越来越多时,责任链模式可以作为补救模式来使用;
0 0
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 【设计模式】——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式—责任链模式
- 大话设计模式—责任链模式
- Java设计模式—责任链模式
- 设计模式—责任链模式
- 设计模式——责任链
- 设计模式——责任链
- java设计模式——责任链
- 设计模式——责任链
- angular.module()
- C语言字符串中大小写字母转换
- jquery笔记:load, $.get, $.getJSON,$.getScript,$.post,serialize(),serializeArray
- 在Ubuntu 14.04 64bit中永久添加DNS的方法;虚拟机与windows互相都可以ping通,但是ubuntu 就是ping不通www.baidu.com;找了N久,最后找到有效的办法
- React-Native初接触
- 设计模式——责任链模式
- KMP算法模板
- centos 安装 eclipse
- nginx的虚拟主机配置
- 【Maven】—使用Idea创建maven webapp项目遇到的问题总结
- codevs 高精度乘法 3117
- Longest Substring Without Repeating Characters
- "=="和equals方法的区别?
- 蓝桥杯练习-查找整数