zoukankan      html  css  js  c++  java
  • 策略模式

    namespace StrategyPattern
    {
        // 所得税计算策略
        public interface ITaxStragety
        {
            double CalculateTax(double income);
        }
    
        // 个人所得税
        public class PersonalTaxStrategy : ITaxStragety
        {
            public double CalculateTax(double income)
            {
                return income * 0.12;
            }
        }
    
        // 企业所得税
        public class EnterpriseTaxStrategy : ITaxStragety
        {
            public double CalculateTax(double income)
            {
                return (income - 3500) > 0 ? (income - 3500) * 0.045 : 0.0;
            }
        }
    
        public class InterestOperation
        {
            private ITaxStragety m_strategy;
            public InterestOperation(ITaxStragety strategy)
            {
                this.m_strategy = strategy;
            }
    
            public double GetTax(double income)
            {
                return m_strategy.CalculateTax(income);
            }
        }
    
        class App
        {
            static void Main(string[] args)
            {
                // 个人所得税方式
                InterestOperation operation = new InterestOperation(new PersonalTaxStrategy());
                Console.WriteLine("个人支付的税为:{0}", operation.GetTax(5000.00));
    
                // 企业所得税
                operation = new InterestOperation(new EnterpriseTaxStrategy());
                Console.WriteLine("企业支付的税为:{0}", operation.GetTax(50000.00));
    
                Console.Read();
            }
        }
    }

    用来替换if else

  • 相关阅读:
    多测师讲解requests __上_高级讲师肖sir
    多测师讲解接口自动化测试 _requests_高级讲师肖sir
    jmeter录制
    构造函数
    函数和方法的区别
    python中类的定义
    jmeter图片的上传
    jmeter图片的下载
    jmeter出现乱码怎么解决
    jmeter目录讲解
  • 原文地址:https://www.cnblogs.com/gaocong/p/6868645.html
Copyright © 2011-2022 走看看