简单的策略模式Strategy演示

策略模式,即规则在变化之中,结果终归为一。

公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算。
这个费的规则是不尽相同。

不管策略的规则怎样,终归需要计算出一个结果 工资:

可以定义一个接口:

 

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

 

测试一下写好的程序:

 

posted @ 2017-12-15 13:21  Insus.NET  阅读(393)  评论(0编辑  收藏  举报