应用场景:创建产品簇
using System; using System.Collections.Generic; using System.Text; namespace FactoryTest { class Program { static void Main(string[] args) { ConcreteFactoryA fA = new ConcreteFactoryA(); ConcreteFactoryB fB = new ConcreteFactoryB(); IProduct pA1 = fA.CreateProduct1(); IProduct pA2 = fA.CreateProduct2(); IProduct pB1 = fB.CreateProduct1(); IProduct pB2 = fB.CreateProduct2(); Console.Read(); } } public class IProduct { void Show(); } //A类产品 public class ProductA1 : IProduct { public void Show(){} } public class ProductA2 : IProduct { public void Show() { } } //B类产品 public class ProductB1 : IProduct { public void Show(){} } public class ProductB2 : IProduct { public void Show() { } } //工厂接口 public interface IFactory { void CreateProduct1(); void CreateProduct2(); } //具体工厂 //一种工厂生产一类产品 public class ConcreteFactoryA : IFactory { public IProduct CreateProduct1() { return new ProductA1(); } public IProduct CreateProduct2() { return new ProductA2(); } } public class ConcreteFactoryB : IFactory { public IProduct CreateProduct1() { return new ProductB1(); } public IProduct CreateProduct2() { return new ProductB2(); } } }