策略模式定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。
我們來實現乙個簡單的商場收銀軟體功能來闡述策略模式:
1.我們先來定義乙個收費方式的基類,**如下:
using system;
namespace strategy
}
2.收費方案,**如下:
using system;
namespace strategy
}}
using system;
namespace strategy
public override double acceptcash (double money)}}
using system;
namespace strategy
public override double acceptcash(double money)
return result;
} }}
3.現金收取類,**如下:
using system;
namespace strategy
//獲取應付現金結果
public double getresult(double money)
}}
4.客戶端**,**如下:
設計模式 二 策略模式
定義演算法家族,分別封裝起來,讓它們之間可以互相替換,讓演算法變化,不會影響到使用者 good 適合類中的成員以方法為主,演算法經常變動 簡化了單元測試 因為每個演算法都有自己的類,可以通過自己的介面單獨測試。策略模式和簡單工廠基本相同,但簡單工廠模式只能解決物件建立問題,對於經常變動的演算法應使用...
設計模式(二) 策略模式
策略模式 strategy 它定義了乙個演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。現金收費抽象類 abstract class cashsuper 正常收費子類 class cashnormal cashsuper 打折收費子類 class ...
設計模式 (二)策略模式
策略模式 abstract class abstract class strategy 演算法a class concretestrategya extends strategy 演算法b class concretestrategyb extends strategy 演算法c class con...