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();
        }
    }


  • 相关阅读:
    Gearman分布式任务处理系统(六)跨多种环境部署
    Gearman分布式任务处理系统(五)版本介绍、安装方法和使用说明
    Gearman分布式任务处理系统(四)Gearman协议
    Gearman分布式任务处理系统(三)libevent介绍
    Java课程笔记_4
    Lesson 13-14 How often do you exercise?
    Lesson 11-12 Men and Women
    Java课程笔记_3
    Lession 9-10 Cell Phone Taboos
    Lession 5-6 When you have a cold
  • 原文地址:https://www.cnblogs.com/mikechang/p/1705116.html
Copyright © 2011-2022 走看看