Java设计模式-----Chain of Responsibility职责链模式
来源:互联网 发布:网络改写的小说 编辑:程序博客网 时间:2024/05/18 02:38
源自:http://www.blogjava.net/flustar/archive/2007/12/14/cor.html
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
- Java设计模式十一: 职责链模式(Chain of Responsibility)
- JAVA设计模式十一:--Chain of Responsibility(职责链模式)
- Chain of Responsibility(职责链设计模式)
- 设计模式(15)-职责链模式(Chain of Responsibility)
- 设计模式之Chain of Responsibility职责链模式
- 设计模式----Chain of Responsibility(职责链)模式
- 设计模式系列随笔- Chain Of Responsibility 职责链模式
- 设计模式—Chain of Responsibility职责链模式
- 设计模式(17)-职责链模式(Chain of Responsibility)
- 设计模式读书笔记之职责链模式(chain of responsibility)
- 设计模式之职责链模式(Chain of Responsibility )
- 设计模式:职责链模式(Chain of Responsibility)
- 设计模式-职责链模式(chain of Responsibility)
- 【设计模式】之 Chain of Responsibility 职责链模式
- Java设计模式-----Memento备忘录模式
- Android 子窗口关闭后怎么把数据回传给主窗口
- uses-permission的问题
- Java设计模式-----Mediator中介者模式
- The data couldn’t be read because it has been corrupted
- Java设计模式-----Chain of Responsibility职责链模式
- Java设计模式-----Visitor访问者模式
- Java设计模式-----Composite模式
- Java设计模式-----FlyWeight享元模式
- 全文检索lucene学习笔记(五)
- Java中使用DES进行加密解密
- 关于"Java中方法参数的传递方式"的探讨
- Jboss负载均衡·集群配置的一点心得
- 文件系统、缓存管理器、内存管理器的关系