简单的策略模式Strategy演示
策略模式,即规则在变化之中,结果终归为一。
公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算。
这个费的规则是不尽相同。
不管策略的规则怎样,终归需要计算出一个结果 工资:
可以定义一个接口:
interface IStrategy { double Cost(double basePay); }
class Living : IStrategy { public double Cost(double basePay) { return basePay * 400; } }
class Travelling : IStrategy { public double Cost(double basePay) { return basePay * 180; } }
你将所有策略均需要实现策略接口。
这样子,计算工资时,把每一个项目进行计算:
class Calc { IStrategy _strategy; public void CalcProject(IStrategy strategy) { this._strategy = strategy; } public void OutputResult(double basePay) { Console.WriteLine(_strategy.Cost(basePay)); } }