zoukankan      html  css  js  c++  java
  • 抽象工厂模式

    代码
    using System;
    using System.Collections.Generic;

    public class Constant
    {
        
    public static double Base_salary=4000;
    }

    /// <summary>
    /// 定义抽象奖金类
    /// </summary>
    public abstract class Bonus
    {
        
    public abstract  double Calculate();
    }
    /// <summary>
    /// 中国奖金
    /// </summary>
    public class ChineseBonus:Bonus
    {
        
    override public double Calculate()
        {
            
    return Constant.Base_salary*0.1;
        }
    }
    /// <summary>
    /// 美国奖金
    /// </summary>
    public class AmericanBonus:Bonus
    {
        
    override public double Calculate()
        {
            
    return Constant.Base_salary*0.15;
        }
    }

    /// <summary>
    /// 定义抽象税收
    /// </summary>
    public abstract class Tax
    {
        
    public abstract double Calculate();
    }
    /// <summary>
    /// 中国税收
    /// </summary>
    public class ChineseTax:Tax
    {
        
    override public double Calculate()
        {
            
    return Constant.Base_salary*0.1;
        }
    }
    /// <summary>
    /// 美国税收
    /// </summary>
    public class AmericanTax:Tax
    {
        
    override public double Calculate()
        {
            
    return Constant.Base_salary*0.2;
        }
    }

    /// <summary>
    /// 抽像工厂
    /// </summary>
    public abstract class AbstractFactory
    {
        
    public abstract Tax getTax();
        
    public abstract Bonus getBonus();
    }

    /// <summary>
    /// 中国工厂
    /// </summary>
    public class ChineseFactory:AbstractFactory
    {
        
    public override Tax getTax()
        {
            
    return new ChineseTax();
        }
        
    public override Bonus getBonus()
        {
            
    return new ChineseBonus();
        }
    }
    /// <summary>
    /// 美国工厂
    /// </summary>
    public class AmericanFactory:AbstractFactory
    {
    //     public static AbstractFactory GetInstance()
    //      {
    //           string factoryName = Constant.STR_FACTORYNAME.ToString();
    //
    //           AbstractFactory instance;
    //
    //           if(factoryName != "")
    //                instance = (AbstractFactory)Assembly.Load(factoryName).CreateInstance(factoryName);
    //            else
    //                instance = null;
    //
    //            return instance;
    //        }
        public override Tax getTax()
        {
            
    return new AmericanTax();
        }
        
        
    public override Bonus getBonus()
        {
            
    return new AmericanBonus();
        }
    }


  • 相关阅读:
    【转】SpringCloud学习
    Springboot中配置druid
    阿里云sql监控配置-druid
    Linux中Java开发常用的软件总结:
    java 搞笑注释
    Python之路-pandas包的详解与使用
    Python之路-numpy模块
    Python之路-Python中的线程与进程
    Python之路-Python常用模块-time模块
    Python之路-Python中文件和异常
  • 原文地址:https://www.cnblogs.com/mikechang/p/1705116.html
Copyright © 2011-2022 走看看