zoukankan      html  css  js  c++  java
  • 超级工厂模式

     public interface ISalary
        {
            void CommandSalary();
        }
    public abstract class ShenZhenSalary : ISalary
        {
            public virtual void CommandSalary()
            {
                Console.WriteLine("这是深圳子公司的工资计算模块");
            }
        }
     public abstract class BeiJinSalary : ISalary
        {
            public virtual void CommandSalary()
            {
                Console.WriteLine("这是北京子公司的工资计算模块");
            }
        }
    public class BeiJinItdSalary : BeiJinSalary
        {
            public override void CommandSalary()
            {
                Console.WriteLine("这是北京子公司ITD的工资计算模块");
            }
        }
    
        public class BeiJinHraSalary : BeiJinSalary
        {
            public override void CommandSalary()
            {
                Console.WriteLine("这是北京子公司HRA的工资计算模块");
            }
        }
    public class ShenZhenItdSalary : ShenZhenSalary
        {
            public override void CommandSalary()
            {
                Console.WriteLine("这是深圳子公司ITD的工资计算模块");
            }
        }
    
        public class ShenZhenHraSalary : ShenZhenSalary
        {
            public override void CommandSalary()
            {
                Console.WriteLine("这是深圳子公司HRA的工资计算模块");
            }
        }
    public interface IFactory
        {
            ShenZhenSalary CreateShenZhenSalary();
            BeiJinSalary CreateBeiJinSalary();
        }
    public class ItdFactory : IFactory
        {
            public ShenZhenSalary CreateShenZhenSalary()
            {
                return new ShenZhenItdSalary();
            }
            public BeiJinSalary CreateBeiJinSalary() 
            {
                return new BeiJinItdSalary();
            }
        }
    public class HraFactory:IFactory
        {
           public ShenZhenSalary CreateShenZhenSalary()
           {
               return new ShenZhenHraSalary();
           }
           public BeiJinSalary CreateBeiJinSalary()
           {
               return new BeiJinHraSalary();
           }
        }
    class Program
        {
            public static void Main(string[] args)
            {
                IFactory Factory = new ItdFactory();  //实例化Itd工厂类
                ShenZhenSalary SalarySzItd = Factory.CreateShenZhenSalary();
                SalarySzItd.CommandSalary(); //调用深圳ITD公司计算过程
    
                BeiJinSalary SalaryBjItd = Factory.CreateBeiJinSalary();
                SalaryBjItd.CommandSalary(); //调用北京ITD公司计算过程
    
                Factory = new HraFactory(); //实例化Hra工厂类
                ShenZhenSalary SalarySzHra = Factory.CreateShenZhenSalary();
                SalarySzHra.CommandSalary(); //调用深圳Hra公司计算过程
    
                BeiJinSalary SalaryBjHra = Factory.CreateBeiJinSalary();
                SalaryBjHra.CommandSalary(); //调用北京Hra公司计算过程
    
                Console.ReadLine();
            }
        }
  • 相关阅读:
    [转]HD钱包的助记词与密钥生成原理
    [转]简单科普私钥、地址、助记词、Keystore的区别
    [转]Sequelize 中文API文档-4. 查询与原始查询
    [转]Node.JS使用Sequelize操作MySQL
    [转]OmniLayer / omnicore API 中文版
    [转]usdt omnicore testnet 测试网络
    [转]USDT与omniCore钱包
    [转]BTC RPC API GetTransaction
    [转]比特币测试链——Testnet介绍
    [转]BTC手续费计算,如何设置手续费
  • 原文地址:https://www.cnblogs.com/mrhgw/p/3012873.html
Copyright © 2011-2022 走看看