责任链模式demo
抽象类
public abstract class Chain {
Chain chain;
public void setNext(Chain chain){
this.chain = chain;
}
abstract void doAggre(String s);
}
节点1:继承抽象类
public class AChain extends Chain{
@Override
public void doAggre(String s) {
if (s.contains("y")){
System.out.println("A 同意");
if (null != chain){
chain.doAggre(s);
}
}else {
System.out.println("A 否决");
}
}
}
节点2:继承抽象类
public class BChain extends Chain{
@Override
void doAggre(String s) {
if (s.contains("p")){
System.out.println("B 同意");
if (null != chain){
chain.doAggre(s);
}
}else {
System.out.println("B 否决");
}
}
}
测试类
public class Test {
public static void main(String[] args) {
AChain aChain = new AChain();
BChain bChain = new BChain();
aChain.setNext(bChain);
aChain.doAggre("yp");
}
}