設計模式學習 策略模式

2021-08-30 13:56:20 字數 1235 閱讀 4737

使用策略模式可以代替多重if-elseswitch語句,讓**維護變得更加簡單,乍一看跟工廠模式一模一樣,下面是個簡單的例子。策略模式包含以下三種角色:

抽象策略角色:定義策略介面

public inte***ce weather
具體策略角色:實現策略介面

/**

* @author jhz

* @date 18-10-31 下午8:18

*/public class sunny implements weather

}

/**

* @author jhz

* @date 18-10-31 下午8:17

*/public class rainy implements weather

}

/**

* @author jhz

* @date 18-10-31 下午8:19

*/public class snowly implements weather

}

環境角色:持有策略物件

/**

* @author jhz

* @date 18-10-31 下午8:20

*/public class action

public void doaction()

}

客戶類

/**

* @author jhz

* @date 18-10-31 下午8:24

對比一下工廠模式的uml:(盜圖)

從uml看也差不多,環境類可以充當乙個策略工廠,它們真正的不同如下:

1、用途:工廠是建立型模式,策略是行為型模式。(差點把劉偉老師上課教的給忘了,前者是為了建立物件,後者是為了選擇行為。

2、關注點不同,前者關注物件建立,後者關注行為封裝。

3、工廠相當於黑盒,策略相當於白盒。

學習設計模式 策略模式

以下絕大部分內容 大話設計模式 c 定義演算法家族,分別封裝起來,讓它們之間可以互相替換,讓演算法變化,不會影響到使用者 good 適合類中的成員以方法為主,演算法經常變動 簡化了單元測試 因為每個演算法都有自己的類,可以通過自己的介面單獨測試。策略模式和簡單工廠基本相同,但簡單工模式只能解決物件建...

設計模式學習 策略模式

看完了策略模式的講解,然後將之於之前的簡單工廠模式對比了一下,策略模式就是將具體的演算法變化封裝了一下,可以將兩者結合一起使用,這樣的話封裝度會更加高一點,而且在更改演算法和新增演算法的時候更加方便。大話設計模式 書中是用商場收銀做例子,我將之用簡單工廠模式做了之後,現在把之前的計算例子再拿出來給一...

設計模式學習筆記 策略模式

我覺得策略模式與工廠方法模式極其相似!策略模式 工廠方法模式 如果單從圖來看,看不出有何相似之處。但看看呼叫方法就知道了 策略模式 context context new context abstractstrategy strategy 採用哪種策略,由呼叫方決定 strategy new con...