设计模式-责任链模式、策略模式

责任链模式

Chain of Responsibility(职责链)---对象行为型模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。

gateway服务zuul框架中的filter使用的责任链模式

设计原则:

• 遵循迪米特法则(最少知识原则)• 单一职责• 开闭原则

适用场景分析:

1.需要将请求和处理分开。请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,两者解耦,提高系统的灵活性。

策略模式

Strategy(策略)---对象行为型模式定义:定义个策略接口,不同的实现类提供不同的具体策略算法, 同时它们之间可以互相替换。

IStrategy 接口定义了策略方法,Strategy1 和 Strategy2 通过实现 IStrategy 提供不同的策略,而 User 组合了 IStrategy ,可以通过给 User 对象设置不同具体实现类来让其获得不同的策略

设计原则:

• 遵循单一职责

• 依赖倒置

• 迪米特

• 开闭原则

适用场景分析:

1.算法需要自由切换场景。实时性较高的业务,无法确定逻辑持续时间,策略模式是较优的选择。

2.旅游出行方式、plan计划(planA、planB)。