策略模式的孪生兄弟——对状态模式的深度复习总结
前言 前面说了一个状态模式,总结过程中发现和这个责任链的使用场景很类似,都是为了解耦大量复杂逻辑判断的,那么他们有什么不同呢? 回忆状态模式—— 策略模式的孪生兄弟——对状态模式的深度复习总结 :状态模式允许通过改变对象的内部状态而改变对象自身的行为,这个对象表现得就好像修改了它的类一样。 状态模式的关键是各个状态子类必须知道下一个状态是什么 , 且要把逻辑判断转移到各个状态子类中,客户端不需要了解状态迁移的顺序。 状态模式虽然类图和策略模式几乎一样,但是策略模式的目的是针对单一算法,在运行时能替换,客户端需要事先了解策略,主动去选择合适的策略,不存在状态的自动迁移。 下面总结复习职责链模式。 责任链(职责链,Chain of Responsibility(CoR))概述 责任链,Chain of Responsibility(CoR),也叫职责链模式或者职责连锁模式,同状态模式一样,也是对象的行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,对象由每一个对象对其下家的引用而连接起来形成一条链,客户端发出的请求在这个链上传递,直到链上的某一个对象决定能处理此请求。 注意:发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任,所以该模式被称作职责链模式。 责任链模式的特点