博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20.策略者模式(Stragety Pattern)
阅读量:5109 次
发布时间:2019-06-13

本文共 1582 字,大约阅读时间需要 5 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication3{    ///     /// 策略模式是针对一组算法,将每个算法封装到具有公共接口的独立的类中,    /// 从而使它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。    ///     class Program    {        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();        }    }    // 所得税计算策略    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);        }    }}

 

转载于:https://www.cnblogs.com/lgxlsm/p/4729263.html

你可能感兴趣的文章
[视频]K8飞刀 一键免杀 IE神洞网马教程
查看>>
正则表达式常用操作符
查看>>
Java环境变量的配置
查看>>
python基础 递归函数
查看>>
stm32 定时器与占空比
查看>>
C# CsvFile 类
查看>>
ECNU1328
查看>>
centos7 yum安装LAMP
查看>>
Logstash常用filter插件
查看>>
加减与有符号和无符号库
查看>>
关于FIR的modelsim
查看>>
Using Post-Form Trigger In Oracle Forms
查看>>
Redis 简介
查看>>
MySQL基本操作
查看>>
业界难题-“跨库分页”的四种方案
查看>>
CCLink
查看>>
asp.net Hessian 服务的注册
查看>>
IIS7.5上的服务的Update和Delete操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
查看>>
(1.2)学习笔记之mysql体系结构(数据库文件)
查看>>
asp.net c#过滤html代码,净化DIV SPAN等
查看>>