策略模式實戰

2021-09-05 15:49:15 字數 410 閱讀 8966

在專案中可能遇到這樣的情況,我們要收集專案中的所有資訊,而每種資訊的收集方法是不一樣的,我就遇到了這樣的情況。起初我用的是直接收集合併,在二個時就已經很費力了,這次是把所有的資訊(有11處之多)收集起來。

我想到了策略模式的意圖,把策略選擇邏輯和策略執行邏輯分開。所以我就把4種選擇方法分別做成了四種策略,每種策略的取分數方法做為策略的執行內容。於是上面的類圖就出現了。

通過應用策略模式我們把乙個複雜的邏輯分成了三個部分,客戶**、選擇策略、執行策略。這樣**得到了簡單化。連我自己都不明白為什麼我把每種策略單獨實現了,把選擇策略實現了,客戶**一調就行了,真是太神奇了。

模式是個好東西,能簡化設計。要好好學習之。

策略模式實戰

把各種策略解耦 返獎策略介面 public inte ce rewardstrategy 新使用者返獎策略 public class newuserrewardstrategy implements rewardstrategy 老使用者返獎策略 public class olduserreward...

常用設計模式 策略模式實戰

什麼是策略模式?常用設計模式 策略模式 場景 假設有乙個支付的業務場景,不同 的訂單要做不同的處理 下面是普通的寫法 override public string order order order else if order.getsource equals ordersourceenum.wec...

實戰中的策略模式

這裡舉乙個 vue elementui 專案中用到的例子,其他框架的專案原理也類似,和大家分享一下。element 的 控制項的 column 接受乙個 formatter 引數,用來格式化內容,其型別為函式,並且還可以接受幾個特定引數,像這樣 function row,column,cellval...