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();
            }
        }
  • 相关阅读:
    bzoj1001 狼抓兔子
    bzoj1015 星球大战
    noip模拟赛 楼
    noip模拟赛 radius
    noip模拟赛 helloworld
    noip模拟赛 hungary
    noip模拟赛 gcd
    洛谷P3375【模板】KMP字符串匹配
    noip模拟赛 隔壁
    noip模拟赛 对刚
  • 原文地址:https://www.cnblogs.com/mrhgw/p/3012873.html
Copyright © 2011-2022 走看看