- 浏览: 132010 次
文章分类
- 全部博客 (149)
- Java (41)
- 设计模式 (23)
- php (2)
- C++ (2)
- Linux (6)
- C (1)
- JavaEE (27)
- javascript (2)
- uplodify (1)
- Mybatis (2)
- Maven (4)
- Lucene (3)
- commons (1)
- Spring (7)
- SQL (3)
- mahout (1)
- MySQL (2)
- extjs4.2.1 (2)
- ubuntu (1)
- hadoop (1)
- hibernate (1)
- Spring JPA (2)
- JPA 2.0 (1)
- express (1)
- redis (2)
- angularjs (1)
- git (1)
- Python (1)
- logging (2)
最新评论
-
xlaohe1:
controller返回的是一个POJO对象,然后用@Resp ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
能帮到你,我也很高兴。
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
jobzjc:
第一段有帮到我。如果是非对象,Object方式传递的时候,第一 ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
dingran 写道为什么,我怎么就没找到System > ...
Ubuntu 12.04 设置 IBus 开机启动 -
dingran:
为什么,我怎么就没找到System >> Pref ...
Ubuntu 12.04 设置 IBus 开机启动
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链, 并沿着这条链传递该请求,直到有对象处理它。 责任链模式的核心在“链”上,“链”是由多个处理者组成的。 public abstract class Handler { private Handler nextHandler; public final Response handleMessage(Request request) { Response response = null; if (this.getHandlerLevel().equals(request.getRequestLevel())) { response = this.echo(request); } else { if (this.nextHandler != null) { response = this.nextHandler.handleMessage(request); } else { // TODO } } return response; } public void setNext(Handler handler) { this.nextHandler = handler; } protected abstract Level getHandlerLevel(); protected abstract Response echo(Request request); } public class Level { } public class Request { public Level getRequestLevel() { return null; } } public class Response { } public class ConcreteHandler1 extends Handler { @Override protected Level getHandlerLevel() { // TODO Auto-generated method stub return null; } @Override protected Response echo(Request request) { // TODO Auto-generated method stub return null; } } public class ConcreteHandler2 extends Handler { @Override protected Level getHandlerLevel() { // TODO Auto-generated method stub return null; } @Override protected Response echo(Request request) { // TODO Auto-generated method stub return null; } } public class ConcreteHandler3 extends Handler { @Override protected Level getHandlerLevel() { // TODO Auto-generated method stub return null; } @Override protected Response echo(Request request) { // TODO Auto-generated method stub return null; } } public class Client { public static void main(String[] args) { Handler handler1 = new ConcreteHandler1(); Handler handler2 = new ConcreteHandler2(); Handler handler3 = new ConcreteHandler3(); handler1.setNext(handler2); handler2.setNext(handler3); Response response = handler1.handleMessage(new Request()); } } 在实际应用中,一般会有一个封装类对责任模式进行封装,也就是替代Client 类,直接返回链中的第一个处理者, 具体的设置不需要高层次模块关系,这样,更简化了高层次模块的调用,较少了耦合。 JavaEE 系统的复杂用户登录可以通过责任链链处理。
发表评论
-
设计模式-享元模式(Flyweight)
2014-06-20 13:11 501使用共享对象可有效地支持大量的细粒度的对象。要求细粒度的对象 ... -
设计模式-桥接模式
2014-06-19 17:12 259将抽象和实现解耦,使得两者可以独立地变化。 桥接模式使用了 ... -
设计模式-状态模式
2014-06-16 10:37 370状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像 ... -
设计模式-代理和动态代理模式
2014-06-13 14:57 4051.简单代理模式 interface Interface ... -
java 迭代器
2014-06-11 18:04 606public class ReversibleArrayL ... -
设计模式-内部类工厂模式
2014-06-10 23:33 499public interface Service { ... -
设计模式-迭代器模式
2014-06-10 14:37 426迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又 ... -
设计模式-模板方法
2014-06-05 13:00 322public abstract class Caffein ... -
设计模式-适配器模式
2014-06-03 22:14 400适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让 ... -
设计模式-命令模式
2014-06-02 23:24 326public interface Command { ... -
设计模式-工厂方法
2014-06-01 18:04 454public abstract class PizzaSt ... -
设计模式-观察者模式
2014-06-01 11:03 4351. 利用Java 内置的类和接口实现观察者模式 publ ... -
设计模式-策略模式
2013-12-16 12:50 445Define a family of algorithms ... -
设计模式-装饰模式
2013-12-16 12:49 415Attach additional responibili ... -
设计模式-命令模式
2013-12-08 15:11 399命令模式是一个高内聚的模式。 Encapsulate ... -
设计模式-中介者模式
2013-12-08 12:29 366在多个对象依赖的情况下,通过加入终结者角色,取消了多个对象 ... -
设计模式-建造者模式(生成器模式)
2013-11-20 11:35 494ArrayList 或者 HashMap 如果定义为类的成员 ... -
设计模式-模板方法模式
2013-11-20 10:45 416Define the skeleton of an algor ... -
设计模式-抽象工厂模式
2013-11-18 15:49 395Provide an interface for creati ... -
设计模式-工厂方法模式
2013-11-18 08:59 572Define an interface for creatin ...
相关推荐
java常用设计模式-责任链模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
JAVA-设计模式-行为型模式-责任链模式
c++设计模式-行为型模式-责任链模式;qt工程;c++简单源码; 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的...
cpp代码-设计模式-责任链模式
Handler后面的successor表示的是由一条链...责任链模式代码实现 首先我们需要定义一个接口,之后的处理人都要实现这个接口,因为是个链表,使用我们要指定后继,因为Java的多态所以我们只需要使用PriceHandler就好了。
设计模式之责任链模式源码 设计模式之责任链模式源码 设计模式之责任链模式源码
设计模式专题之(十五)责任链模式---设计模式责任链模式示例代码(python--c++)
设计模式之责任链模式Java版本实现和UML类图设计
设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式13-迭代器模式 设计模式14-中介者模式、备忘录模式 设计模式15-观察者模式、状态模式 设计模式16-策略模式、模板方法、访问者 此PPT实例便于...
Handler:定义处理请求的接口,并且实现后继链(successor)public abstract class Handler {public class
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
创建型模式,共五种:工厂方法模式、抽象工厂模式、...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
java设计模式之责任链模式,从实际生活入手说明责任链模式的原理。
【设计模式】之责任链模式责任链模式概念责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果
23种设计模式的特点定义、优缺点、使用场景,源码中...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
一、责任链模式 现有 “战士”、“班长”、“排长”、“连长”,“营长”五种角色,当有人要请假时要进行以下处理 1.只能是下级象上级请假(如“排长”只能向“连长请假”) 2.班长可以批准1天内的假期,排长批5天,...