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

    测试一下写好的程序:

  • 相关阅读:
    Java 窗口 绘制图形 #1
    支配树
    Tarjan算法
    Baby-step giant-step算法
    初等群论
    第七次java作业
    学习所用的开发环境
    第六次java作业
    第五次java作业
    第四次java作业
  • 原文地址:https://www.cnblogs.com/insus/p/8042372.html
Copyright © 2011-2022 走看看