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


  • 相关阅读:
    有向图的邻接表--p137-p138
    有向图的邻接矩阵--p136
    无向带权图的邻接矩阵表示--p135
    什么是视频关键帧?流媒体服务器如何提取视频的关键帧?
    电力系统无人值守变电站如何通过流媒体服务器实现随时随地监控
    流媒体服务器如何通过opencv获取IP摄像头(IP-camera)实时视频流
    如何在脱离流媒体服务器的时候使用ffmpeg 监测.m3u8直播视频流的状态?
    流媒体服务器如何在浏览器播放RTSP格式的视频流?
    AI安防监控如何与越来越进步的智能时代结合?
    SDI摄像机和IPC网络高清摄像机有什么区别?如何选择?
  • 原文地址:https://www.cnblogs.com/mikechang/p/1705116.html
Copyright © 2011-2022 走看看