責任鏈模式
Chain of Responsibility(職責鏈)—對象行為型模式定義:使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有對象處理它為止。
gateway服務zuul框架中的filter使用的責任鏈模式
設計原則:
? 遵循迪米特法則(最少知識原則)? 單一職責? 開閉原則
適用場景分析:
1.需要將請求和處理分開。請求者可以不用知道是誰處理的,處理者可以不用知道請求的全貌,兩者解耦,提高系統的靈活性。
策略模式
Strategy(策略)—對象行為型模式定義:定義個策略接口,不同的實現類提供不同的具體策略算法, 同時它們之間可以互相替換。
?
IStrategy 接口定義了策略方法,Strategy1 和 Strategy2 通過實現 IStrategy 提供不同的策略,而 User 組合了 IStrategy ,可以通過給 User 對象設置不同具體實現類來讓其獲得不同的策略
設計原則:
? 遵循單一職責
? 依賴倒置
? 迪米特
? 開閉原則
適用場景分析:
1.算法需要自由切換場景。實時性較高的業務,無法確定邏輯持續時間,策略模式是較優的選擇。
2.旅游出行方式、plan計劃(planA、planB)。
?