/**
*
* @author: muyichun
* @date : 2016年3月23日17:24:38
* @function: 责任链模式
*/
public class Main{
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();
}
}
interface Handler{
public void operator();
}
abstract class AbstractHandler{
private Handler handler;
public Handler getHandler(){
return handler;
}
public void setHandler(Handler handler){
this.handler = handler;
}
}
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();
}
}
链接上的请求可以是一条链,可以是一个树,还可以是一个环,模式本身不约束这个,需要我们自己去实现,同时,在一个时刻,命令只允许由一个对象传给另一个对象,而不允许传给多个对象。
——贴上自己喜欢的代码!