责任链模式
Chain of Responsibility(职责链)—对象行为型模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
gateway服务zuul框架中的filter使用的责任链模式
设计原则:
• 遵循迪米特法则(最少知识原则)• 单一职责• 开闭原则
适用场景分析:
1.需要将请求和处理分开。请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,两者解耦,提高系统的灵活性。
策略模式
Strategy(策略)—对象行为型模式定义:定义个策略接口,不同的实现类提供不同的具体策略算法, 同时它们之间可以互相替换。
IStrategy 接口定义了策略方法,Strategy1 和 Strategy2 通过实现 IStrategy 提供不同的策略,而 User 组合了 IStrategy ,可以通过给 User 对象设置不同具体实现类来让其获得不同的策略
设计原则:
• 遵循单一职责
• 依赖倒置
• 迪米特
• 开闭原则
适用场景分析:
1.算法需要自由切换场景。实时性较高的业务,无法确定逻辑持续时间,策略模式是较优的选择。
2.旅游出行方式、plan计划(planA、planB)。