3、式所创建的对象的父类,或它们共同拥有的接口。具体产品(ConcreteProduct)角色:抽象工厂模式所创建的任何产品对象都是某一个具体产品类的实例。这是客户端最终需要的东西,其内部一定充满了应用系统的商业逻辑。三、 程序举例:该程序演示了抽象工厂的结构,本身不具有任何实际价值。// Abstract Factory pattern -- Structural example using System;// "AbstractFactory"abstract class AbstractFactory{ // Me
4、thods abstract public AbstractProductA CreateProductA(); abstract public AbstractProductB CreateProductB();}// "ConcreteFactory1"class ConcreteFactory1 : AbstractFactory{ // Methods override public AbstractProductA CreateProductA() { return new ProductA1(
5、); } override public AbstractProductB CreateProductB() { return new ProductB1(); }}// "ConcreteFactory2"class ConcreteFactory2 : AbstractFactory{ // Methods override public AbstractProductA CreateProductA() { return new ProductA2(); } override publ
6、ic AbstractProductB CreateProductB() { return new ProductB2(); }}// "AbstractProductA"abstract class AbstractProductA{}// "AbstractProductB"abstract class AbstractProductB{ // Methods abstract public void Interact( AbstractProductA a );}// "ProductA1"class
7、 ProductA1 : AbstractProductA{}// "ProductB1"class ProductB1 : AbstractProductB{ // Methods override public void Interact( AbstractProductA a ) { Console.WriteLine( this + " interacts with " + a ); }}// "ProductA2"class ProductA2 : AbstractProductA{}// "Pr
8、oductB2"class ProductB2 : AbstractProductB{ // Methods override public void Interact( AbstractProductA a ) { Console.WriteLine( this + " interacts with "