zoukankan      html  css  js  c++  java
  • 简单的策略模式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

    测试一下写好的程序:

  • 相关阅读:
    集体编程智慧(发现的一些代码问题)
    jQuery实现图片伦播效果(淡入淡出+左右切换)
    require
    小技巧
    JavaScript--面向对象--猜拳游戏
    简单封装cookie操作
    less
    进程相关

    线程和进程相关
  • 原文地址:https://www.cnblogs.com/insus/p/8042372.html
Copyright © 2011-2022 走看看