责任链模式
2004-08-25 21:32
323 查看
•很多的对象由每一个对象对其下家的引用而联接起来形成一条链。
•请求在这个链上传递,直到链上的某一个对象决定处理此请求。
•发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求.
•责任链可能是一条直线、一个环链甚至一个树结构的一部分。
可以用“击鼓传花”这个例子来了解
•击鼓者将花传给贾母,开始传花游戏。花由贾母传给贾赦,由贾赦传给贾政,由贾政传给贾宝玉,又由贾宝玉传给贾环,由贾环传回给贾母,如此往复(见下图)。当鼓声停止时,手中有花的人就得执行酒令 .
参与者-抽象
•abstract class Player {
abstract public void handle(int i);//处理方法
private Player successor;
public Player() { successor = null;}
protected void setSuccessor(Player aSuccessor) {
successor = aSuccessor;
}
public void next(int index) {//传递方法
if( successor != null ) {
successor.handle(index);
}
else {
System.out.println("Program terminated.");
}
}
}
•
参与者-具体(贾家参与者)
•class JiaMu extends Player {
public JiaMu(Player aSuccessor) {
this.setSuccessor(aSuccessor);
}
public void handle(int i) {
if( i == 1 ) {
System.out.println("Jia Mu gotta drink!");
}
else {
System.out.println("Jia Mu passed!");
next(i);
}
}
}
击鼓传花者(客户端)
•public class DrumBeater {
private static Player player;
static public void main(String[] args)
{
player = new JiaMu( new JiaShe( new
JiaZheng( new JiaBaoYu(new
JiaHuan(null)))));
player.handle(4);
}
}
相关文章推荐
- 设计模式之责任链模式
- 责任链模式(Chain of Responsibility Pattern)
- 责任链模式(Chain of Responsibility)
- Java设计模式之责任链模式的详解(行为模式)
- Java设计模式之责任链模式
- 设计模式之责任链模式
- 责任链模式/chain of responsibility/行为型模式
- 从Tomcat中学习责任链模式
- 设计模式之责任链模式
- 责任链模式(Chain of Responsibility)
- 责任链模式
- 设计模式:责任链模式-chain of responsibility
- 设计模式之责任链模式
- 设计模式——责任链模式
- 责任链模式
- 责任链模式进阶:与AOP思想的融合与应用
- 责任链模式(Chain Of Responsibility Pattern)
- 设计模式_责任链模式
- Java面向对象设计模式(十七)——责任链模式(Chain of Responsibility)