责任链设计模式就是按照链的顺序执行一个个处理方法,链上的每一个任务都持有它后面那个任务的对象引用,在自己这段执行完成之后,调用其后面的处理逻辑。
下面以地铁站乘车的场景来模拟
定义一个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();
}
}
结果

本文通过地铁站乘车的场景,详细解析了责任链设计模式的实现原理。通过定义一系列的处理对象,并将其链接成一条链,每个对象负责处理一部分请求,然后将请求传递给链上的下一个对象,直到请求被处理完毕。
1592

被折叠的 条评论
为什么被折叠?



