策略模式,即規則在變化之中,結果終歸為一。公司給員工計算工資,如有加班費,差旅費,每個月的生活補帖等等其它費用需要計算。這個費的規則是不盡相同。 不管策略的規則怎樣,終歸需要計算出一個結果 工資:可以定義一個介面: interface IStrategy { double Cost(double b ...
策略模式,即規則在變化之中,結果終歸為一。
公司給員工計算工資,如有加班費,差旅費,每個月的生活補帖等等其它費用需要計算。
這個費的規則是不盡相同。
不管策略的規則怎樣,終歸需要計算出一個結果 工資:
可以定義一個介面:
interface IStrategy { double Cost(double basePay); }Source Code
class Living : IStrategy { public double Cost(double basePay) { return basePay * 400; } }Source Code
class Travelling : IStrategy { public double Cost(double basePay) { return basePay * 180; } }Source Code
你將所有策略均需要實現策略介面。
這樣子,計算工資時,把每一個項目進行計算:
class Calc { IStrategy _strategy; public void CalcProject(IStrategy strategy) { this._strategy = strategy; } public void OutputResult(double basePay) { Console.WriteLine(_strategy.Cost(basePay)); } }Source Code