责任链模式
避免请求发送者与接收者耦合在一起,让多个对象都有可能接受请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
通过下面例子,当办公室失火,会通知仓库的保安,保安会通知整个大楼。
抽象区域:
public abstract class Zone{
private Zone parentName;
private String localName;
public Zone(String name) {
localName = name;
}
public void setParentName(Zone parentName) {
this.parentName = parentName;
}
public void notifyPare() {
if(parentName != null) {
parentName.notifyPare();
return;
}
dosomething();
}
abstract void dosomething();
}
具体实现类:
/**
* 办公室
* @author jiahua
*
*/
public class Office extends Zone {
public Office(String name) {
super(name);
}
@Override
void dosomething() {
System.out.println("打开喷洒器喷水");
}
}
/**
* 仓库