首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

设计方式系列之二_责任链模式(Chain of Responsibility)

2013-03-13 
设计模式系列之二_责任链模式(Chain of Responsibility)1.职责链模式定义为了避免请求的发送者和接收者之

设计模式系列之二_责任链模式(Chain of Responsibility)
1.职责链模式定义  为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。
将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
2.Chain of Responsibility模式主要涉及两个角色  1)抽象处理者角色(Handler):它定义了一个处理请求的接口。当然对于链子的不同实现,
也可以在这个角色中实现后继链。
  2)具体处理者角色(ConcreteHandler):实现抽象角色中定义的接口,并处理它所负责的请求。

如果不能处理则访问它的后继者。

如下图:

设计方式系列之二_责任链模式(Chain of Responsibility)

3.职责链模式应用--请假管理假设请假的流程如下:
  1.在公司里,如果你的请假时间小于0.5天,那么只需要向项目经理打声招呼就OK了。
  2.如果超过了0.5天,但是还小于2天,那么就要去找人事部处理,当然,这就要扣工资了。

  3.如果超过了2天,你就需要去找总经理了,工资当然也玩完了。

4.Java代码实现

如下:

/** * @Title:请假流程测试类 * @Description:TODO * @Company: Orclight's Studio * @author: shuzl  2013-3-12 上午09:53:24 * @motto: Never put off what you can do today until Tomorrow * @version 1.0.0  */public class TestRequest {public static void main(String[] args) {//1.发出请求Request request = new Request(3,"病假");//2.创建处理对象ProjectManager pm = new ProjectManager();HR hr = new HR();Manager manager = new Manager();//3.设置chain的流向,关联关系pm.setBoss(hr);hr.setBoss(manager);//4.处理请求pm.handle(request);}}

参考文章:

1.设计模式学习笔记(十九)—Chain of Responsibility职责链模式  

2.重温设计模式(三)——职责链模式(chain of responsibility)

热点排行