- 浏览: 439397 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (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 1275public class MemInfo<T ex ... -
Jps介绍以及解决jps无法查看某个已经启动的java进程问题
2012-03-07 16:41 0Jps介绍以及解决jps无法查看某个已经启 ... -
java.lang.UnsupportedOperationException
2012-02-17 15:01 2161在使用Arrays.asList()后调用add,r ... -
设计模式
2011-10-09 11:05 97123种常用设计模式详细 ... -
JVM调优与监控
2011-09-17 10:57 1718随时记录,方便以后 ... -
A threadpool with limited cache
2011-09-14 10:13 1337As we all know ,we use the ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2011-09-10 13:03 1655Java 内存泄露监控工具(一) -- JV ... -
两个shell脚本,希望大家能够用上
2011-09-08 14:46 1134第一个 定时抓取服务器JVM相关信息 #! /bin/s ... -
jstat的使用方法
2011-08-30 23:30 7718jstat的使用方法 http: ... -
JVM参数配置大全
2011-08-07 09:42 1271JVM参数配置大全[转] 2010-01-14 ... -
JAVA NoClassDefFoundError:
2011-07-24 05:31 49702NoClassDefFoundError: 我 ... -
单实例设计模式
2011-07-15 15:30 828今天讲一下单实例模式 A: public ... -
java关键字:Volatile,Transient,strictfp
2011-06-27 10:04 895Volatile修饰的成员变量 ... -
使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况
2011-05-06 09:36 7783使用JDK 1.6自带的jvisualvm监控远程 ... -
java虚拟机参数设置
2011-05-05 20:07 1170java虚拟机参数设置 收藏 ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2011-05-05 18:31 1327JAVA性能优化—Sun Hotspot JDK JVM参 ... -
[转]JVM内存段分配及启动参数
2011-05-05 17:39 22321. JVM内存段分配及启动参数:J2EE服务器的内 ... -
Jconsole
2011-05-04 15:06 1424Jconsole是JDK自带的一个很好的jvm查看工具 ... -
[转]java.lang.OutOfMemoryError
2011-04-29 16:36 3655http://www.blogjava.net/ld ... -
tomcat6 性能调优
2011-04-20 13:31 2824每个web客户端请求对于服务器端来说就一个单独的线程, ...
相关推荐
责任链模式是软件设计模式中的一种行为模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象处理该请求。在Spring框架中,责任链模式被广泛应用于AOP(面向切面编程)和事件处理等场景。下面将详细阐述责任...
责任链模式是设计模式中的一种行为模式,它允许在对象之间建立一条处理请求的链条,每个对象都包含对请求的处理逻辑,以及将请求传递给下一个对象的能力。这种模式使得请求可以在链上的对象之间传递,直到被某个对象...
责任链模式是一种设计模式,它允许我们把请求沿着处理者对象的链进行传递,直到某个对象处理这个请求。这种模式让请求的发送者和接收者解耦,因为发送者无需知道哪个对象会处理请求,而接收者也无需知道请求来自哪里...
责任链模式是一种行为设计模式,它允许我们把请求沿着处理者链进行传递,直到某个处理者处理这个请求。这种模式让请求的发送者和接收者解耦,因为发送者无需知道哪个对象会处理请求,接收者也不知道其他处理者的存在...
责任链模式是一种设计模式,它允许我们通过定义一系列处理请求的对象来形成一条链,每个对象都包含对请求的处理逻辑,以及将请求传递给链中下一个对象的能力。这种模式使得我们可以将请求的发送者和接收者解耦,使得...
责任链模式是一种行为设计模式,它允许我们定义一系列处理请求的对象,这些对象形成一个链,请求沿着这个链传递,直到某个对象能够处理它。这种方式使得我们可以将请求的发送者和接收者解耦,同时增加了系统扩展的...