Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)
来源:互联网 发布:第六届网络复活赛 编辑:程序博客网 时间:2024/06/06 00:38
接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。先看看关系图:
public interface Handler{ public void operator(); }
public abstract class AbstractHandler{ private Handler handler; public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; }}
public class MyHandler extends AbstractHandler implements Handler{ private String name; public MyHandler(String name) { this.name = name; } @Override public void operator() { System.out.println(name + "deal !"); if (getHandler() != null) { getHandler().operator(); } }}
public class Test{ public static void main(String[] args) { MyHandler h1 = new MyHandler("h1"); MyHandler h2 = new MyHandler("h2"); MyHandler h3 = new MyHandler("h3"); h1.setHandler(h2); h2.setHandler(h3); h1.operator(); }}
Abstracthandler类提供了get和set方法,方便MyHandle类设置和修改引用对象,MyHandle类是核心,实例化后生成一系列相互持有的对象,构成一条链。
阅读全文
0 0
- Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)
- Java开发中的23种设计模式之十七:责任链模式(Chain of Responsibility)
- Java设计模式----责任链模式(Chain of Responsibility)
- 【行为型模式】责任链模式(chain of responsibility)之23种java设计模式
- JAVA设计模式—责任链模式(Chain Of Responsibility)
- Java设计模式--责任链模式(Chain of Responsibility)
- Java设计模式--责任链模式【Chain of Responsibility Pattern】
- 浅谈设计模式:责任链模式(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 Pattern)
- 【Java设计模式】(3)责任链Chain of Responsibility
- REST简介
- 用Maven构建Mahout项目
- 剑指Offer——(31)整数中1出现的次数(从1到n整数中1出现的次数)
- Webpack 3.0来了,就问你慌不慌
- nova vnc proxy基本原理
- Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)
- mysql 强制执行顺序
- MacOS 使用Iterm2搭配lrzsz从服务器上传下载文件
- 使用nc测试服务器UDP端口
- 如何开发一个Servlet
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- 开发的故事
- java.lang.IllegalStateException
- Web性能优化