工厂模式之工厂方法案例

工厂方法模式

首先创建控制台应用程序项目

1.创建AbstractProduct抽象产品类。在该类中定义抽象产品方法。

public abstract class IAbstractProduct
    {
        public abstract string Add();
    }

2.创建ProductAProductB两个具体产品类。请根据工厂方法模式的内容,在两个具体产品类中添加内容。

public class ProductA : AbstractProduct.IAbstractProduct
    {
        public override string Add()
        {
            return "创建具体产品A";
        }
    }

public class ProductB:AbstractProduct.IAbstractProduct
    {
        public override string Add()
        {
            return "创建具体产品B";
        }
    }

3.创建AbstractFactory抽象工厂类。在该类中定义抽象工厂方法。

public abstract class IAbstractFactory
    {
        public abstract AbstractProduct.IAbstractProduct Create();
    }

4.创建ConcreteFactoryAConcreteFactoryB两个具体工厂类。根据工厂方法模式的内容,在两个具体工厂类中添加内容

public class ConcreteFactoryA : AbstractFactory.IAbstractFactory
    {
        public override IAbstractProduct Create()
        {
            return new ProductA();
        }
    }

public class ConcreteFactoryB:AbstractFactory.IAbstractFactory
    {
        public override IAbstractProduct Create()
        {
            return new ProductB();
        }
    }

5.Program类中,调用不同的工厂类实例化不同的产品类,通过Console.WriteLint()输出对应的提示信息。

static void Main(string[] args)
        {
            IAbstractFactory factoryA = new ConcreteFactory.ConcreteFactoryA();
            IAbstractProduct product1 = factoryA.Create();
            Console.WriteLine(product1.Add());
            IAbstractFactory factoryB = new ConcreteFactory.ConcreteFactoryB();
            IAbstractProduct product2 = factoryB.Create();
            Console.WriteLine(product2.Add());
            Console.ReadKey();
        }

结果:

原文地址:https://www.cnblogs.com/lhl123/p/10642699.html