Java设计模式-----Chain of Responsibility职责链模式
2008-06-06 13:19
531 查看
源自:http://www.blogjava.net/flustar/archive/2007/12/14/cor.html
Chain of Responsibility职责链模式:
为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
例子:
Chain of Responsibility职责链模式:
为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
例子:
public class Boy { private boolean hasCar; // 是否有车 private boolean hasHouse; // 是否有房 private boolean hasResponsibility; // 是否有责任心 public Boy() { } public Boy(boolean hasCar, boolean hasHouse, boolean hasResponsibility) { this.hasCar = hasCar; this.hasHouse = hasHouse; this.hasResponsibility = hasResponsibility; } public boolean isHasCar() { return hasCar; } public void setHasCar(boolean hasCar) { this.hasCar = hasCar; } public boolean isHasHouse() { return hasHouse; } public void setHasHouse(boolean hasHouse) { this.hasHouse = hasHouse; } public boolean isHasResponsibility() { return hasResponsibility; } public void setHasResponsibility(boolean hasResponsibility) { this.hasResponsibility = hasResponsibility; } } public interface Handler { public void handleRequest(Boy boy); } public class HouseHandler implements Handler { private Handler handler; public HouseHandler(Handler handler) { this.handler = handler; } public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; } public void handleRequest(Boy boy) { if (boy.isHasHouse()) { System.out.println("没想到吧,我还有房子"); } else { System.out.println("我也没有房"); handler.handleRequest(boy); } } } public class CarHandler implements Handler { private Handler handler; public CarHandler(Handler handler) { this.handler = handler; } public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; } public void handleRequest(Boy boy) { if (boy.isHasCar()) { System.out.println("呵呵,我有辆车"); } else { System.out.println("我没有车"); handler.handleRequest(boy); } } } public class ResponsibilityHandler implements Handler { private Handler handler; public ResponsibilityHandler(Handler handler) { this.handler = handler; } public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; } public void handleRequest(Boy boy) { if (boy.isHasResponsibility()) { System.out.println("我只有一颗带Responsibility的心"); } else { System.out.println("更没有责任心"); handler.handleRequest(boy); } } } public class Girl { public static void main(String[] args) { Boy boy = new Boy(false, false, true);// 这个boy没有车,也没有房,不过很有责任心 Handler handler = new CarHandler(new HouseHandler( new ResponsibilityHandler(null)));// 也可以使用setHanlder方法 handler.handleRequest(boy); } }
相关文章推荐
- 【Java设计模式】· 职责链模式(Chain of Responsibility)
- Java设计模式十一: 职责链模式(Chain of Responsibility)
- Java设计模式十一: 职责链模式(Chain of Responsibility)
- Java设计模式——职责链模式(Chain of Responsibility)
- 设计模式学习笔记---职责链模式chain of responsibility(Java版)
- Java设计模式之从[使命召唤等游戏的任务提示]分析职责链(Chain Of Responsibility)模式
- Java设计模式-----Chain of Responsibility职责链模式
- 重温设计模式(三)——职责链模式(chain of responsibility) [转载]
- 设计模式之职责链模式(Chain Of Responsibility)
- java 设计模式学习笔记十六 chain of responsibility 职责链设计模式
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
- 设计模式之Chain of Responsibility(职责链)
- 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为)
- Java设计模式----责任链模式(Chain of Responsibility)
- [导入]C#面向对象设计模式纵横谈(20):(行为型模式) Chain Of Responsibility 职责链模式.zip(8.18 MB)
- 设计模式系列随笔- Chain Of Responsibility 职责链模式
- 设计模式-职责链/责任链模式(Chain of Responsibility)分析理解和在Android的应用
- 【设计模式】行为模式之Chain of Responsibility职责链
- Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)
- 设计模式之Chain of Responsibility(职责链)