上次更了簡單工廠模式的介紹,這次來介紹一下我對策略模式的理解。
基於上一次的例子,我們可以用乙個context(環境角色)維護對策略的引用,然後在客戶端部分實現。這樣做的話,客戶端還是要分幾種情況去選擇例項化context類,所以結合工廠模式,把context也看作乙個工廠,將選擇的情況放在context裡去執行。以下是**:
/**環境角色*/
public
class
cashcontext
}public
double
getresult
(double money)
/**客戶端部分*/
public
static
void
main
(string args)
}
//簡單工廠下客戶端對策略的例項化
cashsuper csuper =cashfactory.
createcashaccept
(type)
;double newmoney = csuper.
acceptcash
(money)
;
//策略模式下客戶端對策略的例項化
cashcontext cc=
newcashcontext
(type)
;
設計模式二之策略模式
package 大話設計模式.策略模式 策略介面 public inte ce strategy 定義具體策略a,實現策略介面,重寫具體的演算法功能 public class concretestrategya implements strategy package 大話設計模式.策略模式 定義具體...
設計模式學習之策略模式
1.名詞解釋 策略模式 它定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的使用者。在不同的時間或條件應用不同的業務規則時,可以考慮使用策略模式 2.示例 策略抽象類 package designpattern.strategypattern pub...
設計模式學習總結 3 策略模式
策略模式 strategy 屬於行為模式 意圖 定義一系列的演算法,把它們乙個個封裝起來,並且使它們可以相互替換。本模式使得演算法可獨立於它的客戶而變化。什麼意思呢,我想的是,演算法獨立於客戶,我們把一些演算法具體實現封裝起來,成為具體的類,而每乙個演算法獨立為一種具體策略,把演算法和環境 cont...