java设计模式之责任链模式
2017-11-28 18:23
603 查看
java设计模式参考文章:
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
Chain of Responsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。
## 代码举例 ##
案例: 雇员要求 (请假 ), 经理Manager -> 要经过总监Director的层层审批.
## 优点 ##
降低耦合度: 客户提交一个请求, 请求沿链传递直至一个ConcreteHandler最终处理, 接收者和发送者都没有对方的明确信息, 便于接受者与发送者的解耦.
增强给对象指派职责的灵活性: 链中对象自己并不清楚链结构,他们仅保持一个后继者指针, 因此责任链可简化对象的相互连接, 且可以随时增加或修改处理请求的对象, 增强了给对象指派职责的灵活性.
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
Chain of Responsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。
## 代码举例 ##
案例: 雇员要求 (请假 ), 经理Manager -> 要经过总监Director的层层审批.
/** * @author bwx * @date 2017/11/28 * 定义一个处理请求的接口, * 内持继任者(可选,也可以在其他方法中实现责任链的顺序关系) */ public abstract class Handler { protected Handler nextHandler; protected String name; public Handler(Handler nextHandler, String name) { this.nextHandler = nextHandler; this.name = name; } public abstract void handleRequest(int id); } /** * @author bwx * @date 2017/11/28 * 经理 */ public class Manager extends Handler { public Manager(Handler nextHandler, String name) { super(nextHandler, name); } public void handleRequest(int id) { if (id > 20) { System.out.println("经理审批:不是工号20以前的老员工,没有休假"); } nextHandler.handleRequest(id); } } /** * @author bwx * @date 2017/11/28 * 总监 */ public class Director extends Handler { public Director(Handler nextHandler, String name) { super(nextHandler, name); } public void handleRequest(int id) { if (id > 10) { System.out.println("总监审批:不是工号10以前的老员工,没有休假"); } } } /** * @author bwx * @date 2017/11/28 * Chain of Responsibility * 责任链模式 */ public class Main { public static void main(String[] args) { Handler director = new Director(null, "总监"); Handler handler = new Manager(director, "经理"); handler.handleRequest(50); } }
## 优点 ##
降低耦合度: 客户提交一个请求, 请求沿链传递直至一个ConcreteHandler最终处理, 接收者和发送者都没有对方的明确信息, 便于接受者与发送者的解耦.
增强给对象指派职责的灵活性: 链中对象自己并不清楚链结构,他们仅保持一个后继者指针, 因此责任链可简化对象的相互连接, 且可以随时增加或修改处理请求的对象, 增强了给对象指派职责的灵活性.
相关文章推荐
- java设计模式之责任链模式
- Java设计模式之责任链
- Java设计模式《二十》责任链模式
- Java设计模式——Chain of Responsibility(责任链)模式
- java设计模式-责任链
- java设计模式之责任链模式
- java 设计模式 责任链 filter
- JAVA设计模式之责任链模式
- java责任链设计模式及在tomca容器中的应用,第一部分
- 【Java设计模式】(3)责任链Chain of Responsibility
- java责任链设计模式及在tomca容器中的应用,第二部分
- JAVA设计模式之责任链模式
- Java设计模式(七) COR(责任链)模式及Tomcat引申
- Java责任链设计模式
- Java责任链设计模式-Lambda表达式
- java设计模式之责任链模式
- java23种设计模式之责任链模式
- Java 23种设计模式之责任链模式
- Java设计模式之责任链模式