【学习笔记】设计模式之创建型模式-简单工厂

先上代码:

    /// <summary>
    /// 抽象类产品
    /// </summary>
    abstract class Product
    {
        public void MethodSame()
        {
            Console.WriteLine("MethodSame");
        }
        public abstract void MethodDiff();
    }
     /// <summary>
    /// 具体实现A
    /// </summary>
    class ConcreteProductA : Product
    {
        public override void MethodDiff()
        {
            Console.WriteLine("ConcreteProductA:MethodDiff");
        }
    }
    /// <summary>
    /// 具体实现B
    /// </summary>
    class ConcreteProductB : Product
    {
        public override void MethodDiff()
        {
            Console.WriteLine("ConcreteProductB:MethodDiff");
        }
    }
   /// <summary>
    /// 工厂方法
    /// </summary>
    class Factory
    {
        public static Product GetProduct(string args)
        {
            Product product = null;
            if (args.Equals("A"))
            {
                product = new ConcreteProductA();
            }
            else if (args.Equals("B"))
            {
                product = new ConcreteProductB();
            }
            return product;
        }
    }
   //调用方法
   static void Main(string[] args)
        {
            Product product;
            product = Factory.GetProduct("A");
            product.MethodSame();
            product.MethodDiff();
            product = Factory.GetProduct("B");
            product.MethodSame();
            product.MethodDiff();

            Console.ReadLine();
        }

将抽象类的具体初始化过程封装在工厂类中,对外不可见。

猜你喜欢

转载自www.cnblogs.com/hwrblog/p/12809316.html