责任链设计模式就是按照链的顺序执行一个个处理方法,链上的每一个任务都持有它后面那个任务的对象引用,在自己这段执行完成之后,调用其后面的处理逻辑。
下面以地铁站乘车的场景来模拟
定义一个Check接口
public interface Check {
public void check();
}
新建一个检查随身物品的类
public class InspectionArticles implements Check {
private Check check;
public InspectionArticles() {
}
public InspectionArticles(Check check) {
this.check = check;
}
public void check() {
System.out.println("正在检查随身物品...");
if(null != check) {
check.check();
}
}
}
新建一个检查车票的类
public class TicketInspection implements Check {
private Check check;
public TicketInspection() {
}
public TicketInspection(Check check) {
this.check = check;
}
public void check() {
System.out.println("正在检查车票...");
if(null != check) {
check.check();
}
}
}
新建一个地铁站的类
public class MetroStation {
public void arrival() {
TicketInspection ticketInspection = new TicketInspection();
InspectionArticles inspectionArticles = new InspectionArticles(ticketInspection);
inspectionArticles.check();
System.out.println("请步行至站台候车...");
}
}
新建一个测试类
public class Test {
public static void main(String[] args) {
MetroStation metroStation = new MetroStation();
metroStation.arrival();
}
}
结果