- 浏览: 434303 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (144)
- java (32)
- Flex (11)
- linux (15)
- 思维至上 (2)
- 生活 (4)
- spring2.5.5 (3)
- Design pattern (0)
- jdk1.6 (1)
- erlang (14)
- mysql (5)
- nginx (10)
- 互联网 (1)
- 用户体验 (0)
- jvm (8)
- hibernate (0)
- oracle (0)
- mvn (2)
- 23种常用设计模式详细讲解及实例 (1)
- nosql (1)
- mongodb (2)
- thrift (1)
- 负载均衡 (1)
- Objective-c (1)
- fuck (1)
- resin (3)
- log4j (2)
- android (1)
- jps (0)
- lucene (2)
- rsync (1)
- python (1)
- java性能分析 (1)
- spring (1)
- zookeeper (2)
- error (1)
- 算法 (1)
- hudson (1)
- svn (1)
- maven (1)
- svn server (2)
- swap linux (1)
- 协同过滤 (1)
- 邮件系统 (1)
最新评论
-
cheetah747:
我也遇到这个问题了,不过我是直接把第三方jar放到工程文件的l ...
JAVA NoClassDefFoundError: -
dxm1986:
hillfallshore 写道亲 你这是杜撰的小说吗?完全是 ...
面试有感 -
dxm1986:
mengda1027 写道从实习生到高级java到架构师,是在 ...
面试有感 -
dxm1986:
kljjack 写道一个编程十几年,每年看几十本技术书籍,技术 ...
面试有感 -
dxm1986:
轻指飞扬 写道呵呵,挺好玩的~ 我怎么感觉你招人不是很有诚意嘛 ...
面试有感
其实我一直都不太喜欢去死记硬背那些神马设计模式,但不得不说,你一定要对设计模式有一个大体的概念,知道什么情况下用什么设计模式就OK了。今天写了一个责任链:
Handler:
public abstract class Handler { protected Handler nextHandler; public Handler getNextHandler() { return nextHandler; } public abstract void invoke(Object o); public void setNextHandler(Handler nextHandler) { this.nextHandler = nextHandler; } }
FilterChain(或者叫HandlerHolder):
public class FilterChain { private Handler rootHandler; private Handler currentHandler; public Handler getRootHandler() { return rootHandler; } public Handler getCurrentHandler() { return currentHandler; } public FilterChain setNextHandler(Handler nextHandler) { if(null == nextHandler || nextHandler.equals(currentHandler)) { return this; } //第一次设置 if(null == rootHandler) { rootHandler = nextHandler; this.currentHandler = nextHandler; }else{ //非第一次,将nextHandler设置成当前handler.nextHandler //然后将最新添加的handler设置为currentHandler if(null != currentHandler) { this.currentHandler.setNextHandler(nextHandler); this.currentHandler = nextHandler; } } return this; } }
再写两个Handler实现类:
public class DxmHandler extends Handler{ @Override public void invoke(Object t) { System.out.println("this is the dxm handler...."); if(nextHandler != null) { nextHandler.invoke(0); } } }
public class DdHandler extends Handler{
@Override public void invoke(Object o) { System.out.println("this is the dd handler...."); if(nextHandler != null) { nextHandler.invoke(0); } } }
最后测试一下:
public static void main(String[] args) {
Handler dxmHandler = new DxmHandler(); Handler ddHandler = new DdHandler(); FilterChain chain = new FilterChain(); chain.setNextHandler(dxmHandler).setNextHandler(ddHandler).setNextHandler(ddHandler); chain.getRootHandler().invoke(new Object()); }
Game Over.
发表评论
-
what the fucking code
2012-04-12 14:08 1191public class MemInfo<T ex ... -
Jps介绍以及解决jps无法查看某个已经启动的java进程问题
2012-03-07 16:41 0Jps介绍以及解决jps无法查看某个已经启 ... -
java.lang.UnsupportedOperationException
2012-02-17 15:01 2137在使用Arrays.asList()后调用add,r ... -
设计模式
2011-10-09 11:05 94023种常用设计模式详细 ... -
JVM调优与监控
2011-09-17 10:57 1686随时记录,方便以后 ... -
A threadpool with limited cache
2011-09-14 10:13 1295As we all know ,we use the ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2011-09-10 13:03 1630Java 内存泄露监控工具(一) -- JV ... -
两个shell脚本,希望大家能够用上
2011-09-08 14:46 1111第一个 定时抓取服务器JVM相关信息 #! /bin/s ... -
jstat的使用方法
2011-08-30 23:30 7688jstat的使用方法 http: ... -
JVM参数配置大全
2011-08-07 09:42 1246JVM参数配置大全[转] 2010-01-14 ... -
JAVA NoClassDefFoundError:
2011-07-24 05:31 49625NoClassDefFoundError: 我 ... -
单实例设计模式
2011-07-15 15:30 802今天讲一下单实例模式 A: public ... -
java关键字:Volatile,Transient,strictfp
2011-06-27 10:04 867Volatile修饰的成员变量 ... -
使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况
2011-05-06 09:36 7732使用JDK 1.6自带的jvisualvm监控远程 ... -
java虚拟机参数设置
2011-05-05 20:07 1152java虚拟机参数设置 收藏 ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2011-05-05 18:31 1294JAVA性能优化—Sun Hotspot JDK JVM参 ... -
[转]JVM内存段分配及启动参数
2011-05-05 17:39 22051. JVM内存段分配及启动参数:J2EE服务器的内 ... -
Jconsole
2011-05-04 15:06 1394Jconsole是JDK自带的一个很好的jvm查看工具 ... -
[转]java.lang.OutOfMemoryError
2011-04-29 16:36 3629http://www.blogjava.net/ld ... -
tomcat6 性能调优
2011-04-20 13:31 2790每个web客户端请求对于服务器端来说就一个单独的线程, ...
相关推荐
责任链模式是软件设计模式中的一种行为模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象处理该请求。在Spring框架中,责任链模式被广泛应用于AOP(面向切面编程)和事件处理等场景。下面将详细阐述责任...
责任链模式是设计模式中的一种行为模式,它允许在对象之间建立一条处理请求的链条,每个对象都包含对请求的处理逻辑,以及将请求传递给下一个对象的能力。这种模式使得请求可以在链上的对象之间传递,直到被某个对象...
责任链模式是一种设计模式,它允许我们把请求沿着处理者对象的链进行传递,直到某个对象处理这个请求。这种模式让请求的发送者和接收者解耦,因为发送者无需知道哪个对象会处理请求,而接收者也无需知道请求来自哪里...
责任链模式是一种行为设计模式,它允许我们把请求沿着处理者链进行传递,直到某个处理者处理这个请求。这种模式让请求的发送者和接收者解耦,因为发送者无需知道哪个对象会处理请求,接收者也不知道其他处理者的存在...
责任链模式是一种设计模式,它允许我们通过定义一系列处理请求的对象来形成一条链,每个对象都包含对请求的处理逻辑,以及将请求传递给链中下一个对象的能力。这种模式使得我们可以将请求的发送者和接收者解耦,使得...
责任链模式是一种行为设计模式,它允许我们定义一系列处理请求的对象,这些对象形成一个链,请求沿着这个链传递,直到某个对象能够处理它。这种方式使得我们可以将请求的发送者和接收者解耦,同时增加了系统扩展的...
责任链模式是一种设计模式,它的主要目的是解耦请求的发送者和接收者,使得系统中的对象可以相互通信,而不必显式地指定接收者。在这种模式中,多个对象(称为处理者)形成一个链条,每个处理者都有能力处理请求或者...
4. **责任链模式**:责任链模式是行为型设计模式,它使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。在这个模式中,请求沿着处理者链进行传递,每个处理者都有机会处理请求,或者将请求传递...
责任链模式是软件设计模式中的一种行为模式,它允许在对象之间建立一条链,并将请求沿着这条链传递,直到某个对象处理该请求。在Java中,责任链模式可以帮助我们实现松耦合,使得请求处理者与请求发起者之间无需直接...
责任链模式是设计模式中的一种行为模式,常用于在对象之间分发请求,使得多个对象都有机会处理这个请求,而无需显式指定接收者。在iOS开发中,它被广泛应用于事件处理、消息传递和解耦系统组件。下面将详细阐述责任...
责任链模式是一种设计模式,它允许我们通过定义一系列处理对象(过滤器)形成一个链,这些对象依次处理请求,而发送者无需知道哪个对象具体处理请求。这种模式将请求的发送者与接收者解耦,增加了系统的灵活性和可...
责任链模式是一种设计模式,它允许我们通过定义一系列处理请求的对象来解耦发送者和接收者。在责任链模式中,每个对象都是链上的一个节点,可以处理请求的一部分或者将请求传递给链上的下一个对象。这种模式使得系统...
责任链模式是设计模式中的一种行为模式,它允许在对象之间建立一条链,并沿着这条链传递请求,直到有一个对象处理该请求。在这个Java实现的责任链模式中,我们可以通过类的组合而非继承来创建一个处理请求的链条,...
责任链模式是一种行为设计模式,它允许我们把请求沿着处理者对象的链式结构进行传递,直到某个对象处理这个请求。这种模式使得我们能够将请求的发送者与接收者解耦,同时也允许在运行时动态地改变处理顺序或添加新的...
责任链模式是一种设计模式,它允许我们把请求沿着处理者对象的链进行传递,直到某个对象能够处理这个请求。在“责任链模式--解读P2P”中,我们可以看到这种模式是如何应用于点对点(Peer-to-Peer,简称P2P)网络中的...
责任链模式(Chain of Responsibility)的目标是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 在处理用户的...
责任链模式是一种设计模式,它允许我们通过将处理请求的对象链接成一条链,使得请求能够沿着这条链传递,直到被某个对象处理。这种模式在不指定接收者的情况下,可以实现发送者与接收者的解耦。在Qt5这个C++框架中,...
### 深入浅出JAVA责任链模式 #### 一、引言 责任链模式是一种在软件设计领域中常见的设计模式之一,它主要用于处理请求的传递过程,通过一系列的处理者对象来完成请求的处理任务。本文将详细介绍JAVA中的责任链...
责任链模式是一种行为设计模式,它的核心思想是将请求的发送者和接收者解耦,通过将多个处理对象串联成一个处理链,使得请求沿着这个链进行传递,直到被某个对象处理。这种模式使得系统更加灵活,可以在运行时动态...
责任链模式是一种设计模式,它允许我们通过定义一系列处理对象(每个对象称为一个节点),将请求在这些对象之间传递,直到被某个节点处理或者传递完整个链条。这种模式的主要优点在于解耦了发送者和接收者,使得系统...