Java与设计模式(二十七)行为型--责任链模式
2018-01-26 18:45
225 查看
一概述
二解决的问题
三模式中的角色
四模式解读
五JDK涉及到的设计模式
六模式总结
优点
缺点
适用场景
2、具体处理者角色(ConcreteHandler):
处理它所负责的请求,可以访问后继者,如果可以处理请求则处理,否则将该请求转给他的后继者。
3、客户类(Client): 向一个链上的具体处理者ConcreteHandler对象提交请求。
2、职责链可简化对象的相互连接,仅需保持一个指向其后继者的引用,而不需保持它所有的候选接受者的引用。
3、增强了给对象指派职责的灵活性,当在对象中分派职责时,职责链给你更多的灵活性。你可以通过在运行时刻对该链进行动态的增加或修改来增加或改变处理一个请求的那些职责。你可以将这种机制与静态的特例化处理对象的继承机制结合起来使用。
4、增加新的请求处理类很方便
2、系统性能将受到一定影响,而且在进行代码调试时不太方便;可能会造成循环调用。
2、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
3、可动态指定一组对象处理请求。
二解决的问题
三模式中的角色
四模式解读
五JDK涉及到的设计模式
六模式总结
优点
缺点
适用场景
一、概述
责任链模式避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。二、解决的问题
如果有多个对象都有可能接受请求,可以避免请求发送者与接收者耦合在一起。三、模式中的角色
1、抽象处理者角色(Handler): 定义一个处理请求的接口,和一个后继连接(可选)2、具体处理者角色(ConcreteHandler):
处理它所负责的请求,可以访问后继者,如果可以处理请求则处理,否则将该请求转给他的后继者。
3、客户类(Client): 向一个链上的具体处理者ConcreteHandler对象提交请求。
四、模式解读
责任链模式的类图如下所示五、JDK涉及到的设计模式
JDK中体现ava.util.logging.Logger会将log委托给parent的logger和ClassLoader的委托模型六、模式总结
优点
1、降低耦合度,该模式使得一个对象无需知道是其他哪一个对象处理其请求。对象仅需知道该请求会被“正确”地处理。接收者和发送者都没有对方的明确的信息,且链中的对象不需知道链的结构。2、职责链可简化对象的相互连接,仅需保持一个指向其后继者的引用,而不需保持它所有的候选接受者的引用。
3、增强了给对象指派职责的灵活性,当在对象中分派职责时,职责链给你更多的灵活性。你可以通过在运行时刻对该链进行动态的增加或修改来增加或改变处理一个请求的那些职责。你可以将这种机制与静态的特例化处理对象的继承机制结合起来使用。
4、增加新的请求处理类很方便
缺点
1、不能保证请求一定被接收。既然一个请求没有明确的接收者,那么就不能保证它一定会被处理,该请求可能一直到链的末端都得不到处理。一个请求也可能因该链没有被正确配置而得不到处理。2、系统性能将受到一定影响,而且在进行代码调试时不太方便;可能会造成循环调用。
适用场景
1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。2、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
3、可动态指定一组对象处理请求。
相关文章推荐
- java-设计模式(行为型)-【责任链模式】
- JAVA设计模式(13):行为型-责任链模式(Responsibility)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 责任链模式(Chain of Responsibility) - Java实现
- Java设计模式_(行为型)_责任链模式
- 【行为型模式】责任链模式(chain of responsibility)之23种java设计模式
- JAVA设计模式(13):行为型-责任链模式(Responsibility)
- Java设计模式(行为型)之-责任链模式
- Java设计模式_行为型_责任链模式_差旅报销如此简单
- Java设计模式之行为型模式(责任链模式)
- java设计模式之责任链模式
- java 设计模式 -- 责任链模式
- Java设计模式_行为型_策略模式_工作还是休息
- Java设计模式(14)行为型:模板方法模式
- JAVA设计模式—责任链模式(Chain Of Responsibility)
- Java设计模式之责任链模式简介
- 【行为型模式】观察者模式(Observer)之23种java设计模式
- Java设计模式--责任链模式
- Java设计模式之——责任链模式
- Java经典设计模式之十一种行为型模式(附实例和详解)
- java-设计模式(行为型)-【迭代器模式】