设计模式——责任链模式
public abstract class Handler {
public final static int FATHER_LEVEL_REQUEST=1;
public final static int HUSBAND_LEVEL_REQUEST=2;
public final static int SON_LEVEL_REQUEST=3;
private int level=0;
private Handler nextHandler;
public Handler(int level){
this.level=level;
}
public void setNextHandler(Handler nextHandler){
this.nextHandler=nextHandler;
}
public final void HandMessage(IWomen iWomen){
if(iWomen.getType()==this.level){
this.response(iWomen);
}else {
if(this.nextHandler!=null){
this.nextHandler.HandMessage(iWomen);
}else {
System.out.println("没有地方请求");
}
}
}
public abstract void response(IWomen iWomen);
}
public class Father extends Handler {
public Father() {
super(FATHER_LEVEL_REQUEST);
}
@Override
public void response(IWomen iWomen) {
System.out.println("女儿请求:");
iWomen.getRequest();
System.out.println("父亲同意");
}
}
public class Husband extends Handler{
public Husband() {
super(HUSBAND_LEVEL_REQUEST);
}
@Override
public void response(IWomen iWomen) {
System.out.println("妻子请求:");
iWomen.getRequest();
System.out.println("丈夫同意");
}
}
public interface IWomen {
public int getType();
public void getRequest();
}
public class Woman implements IWomen{
private int type;
private String request;
public Woman(int type) {
this.type = type;
switch (this.type){
case 1:this.request="女儿想逛街"; break;
case 2:this.request="妻子想逛街"; break;
}
}
@Override
public int getType() {
return this.type;
}
@Override
public void getRequest() {
System.out.println(this.request);
}
}