责任链模式 (ChainOfResponsibility)

目的: 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止

优点:

1.降低耦合度,它将请求的发送与接收解耦

2.简化了对象,使得对象不需要知道链的结构

3.增强给对象指派职责的灵活性

4.增加新的请求处理类很方便

缺点:

1.不能保证请求一定被接收

2.系统性能将受到一定影响,可能造成循环调用

3.不容易观察运行时的特征

使用场景:

01.有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时自动确定

02.在不明确指定接收者的情况下,向多个对象中的一个提交一个请求

03.可动态指定一组对象处理请求

实现(参考

 现在创建抽象类AbstractLogger ,带有详细的日志记录级别,创建三种类型的记录器,都扩展了 AbstractLogger,每个记录器消息的级别是否属于自己的级别,如果是,则打印,否则传递给下一个记录器