设计思想学习—职责链模式
2018-01-07 19:02
441 查看
职责链模式
职责链模式(Chain of Responsibility):使多个对象都有机会处理求情,从而避免求情的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。职责链也是一个很简单的模式,就像糖葫芦一样穿成一串一个个来,而且组成也很简单就两部分
职责链模式构成:
抽象处理者(Handler)角色:定义出一个处理请求的接口。
具体处理者(ConcreteHandler)角色:具体处理者接到请求后,可以选择将请求处理掉,或者将请求传给下家。由于具体处理者持有对下家的引用,因此,如果需要,具体处理者可以访问下家。
UML
因为很容易理解所以就没有研究太多,直接上代码
abstract class Handler { //持有后继的责任对象 protected Handler successor; //示意处理请求的方法 public abstract void handleRequest(int num); //赋值方法,设置后继的责任对象 public abstract void setSuccessor(Handler successor); } class ConcreteHandler extends Handler { private Handler successor; //处理方法,调用此方法处理请求 @Override public void handleRequest(int num) { //判断是否在处理范围之内 if(num == 1){ System.out.println("第一级:处理请求"); }else{ System.out.println("交给二级处理"); if(successor!=null){ successor.handleRequest(num); } } } @Override public void setSuccessor(Handler successor) { this.successor=successor; } } class ConcreteHandler2 extends Handler { private Handler successor; //处理方法,调用此方法处理请求 @Override public void handleRequest(int num) { //判断是否在处理范围之内 if(num == 2){ System.out.println("第二级:处理请求"); }else{ System.out.println("交给三级处理"); if(successor!=null){ successor.handleRequest(num); } } } @Override public void setSuccessor(Handler successor) { this.successor=successor; } } public class Client { public static void main(String[] args) { ConcreteHandler one=new ConcreteHandler(); ConcreteHandler2 two=new ConcreteHandler2(); one.setSuccessor(two); one.handleRequest(2); } }
输出:
交给二级处理
第二级:处理请求
为了省事儿,这里只弄了两级,现实中有几级可以弄几级直到处理为止。
其实所有的设计模式都没有研究很深,因为目标只是认识知道,往后会慢慢加深印象理解。
相关文章推荐
- 设计模式学习笔记(18)——职责链模式
- 设计模式学习笔记--Chain Of Responsibility 职责链模式
- 设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则
- 设计模式学习之职责链模式
- 设计模式学习(二十四)————职责链模式
- 设计模式学习笔记——Chain of Responsibility职责链模式
- 设计模式其实很简单学习笔记:设计模式之职责链模式
- 设计模式学习笔记(十九)—Chain of Responsibility职责链模式
- 学习设计模式第十六 - 职责链模式
- 职责链模式 - 设计模式学习
- 设计模式学习笔记三【单一职责原则】
- 小王和你一起学习系列之设计模式-单一职责原则
- 设计模式入门学习 职责链模式
- 步步为营 .NET 设计模式学习笔记 十九、Chain of Responsibility(职责链模式)
- 设计模式学习之——六大设计原则之一:单一职责原则
- Java设计模式学习笔记---单一职责原则(一)
- 职责链模式 - 设计模式学习
- 设计模式学习之——六大设计原则之一:单一职责原则
- 设计模式学习(十二)职责链模式-命令模式-解释器模式
- 设计模式学习之——六大设计原则之一:单一职责原则