工厂模式之工厂方法案例
工厂方法模式
首先创建控制台应用程序项目
1.创建AbstractProduct抽象产品类。在该类中定义抽象产品方法。
public abstract class IAbstractProduct { public abstract string Add(); }
2.创建ProductA、ProductB两个具体产品类。请根据工厂方法模式的内容,在两个具体产品类中添加内容。
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.创建ConcreteFactoryA、ConcreteFactoryB两个具体工厂类。根据工厂方法模式的内容,在两个具体工厂类中添加内容
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(); }
结果: