策略模式,即规则在变化之中,结果终归为一。
公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算。
这个费的规则是不尽相同。
不管策略的规则怎样,终归需要计算出一个结果 工资:
可以定义一个接口:
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
测试一下写好的程序:
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦






