设计模式之工厂模式
10/21/2012 5:16:11 PM
名称:工厂模式
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
适用环境:
1、当一个类不知道它所必须创建的对象的类的时候
2、当一个类希望由它的子类来指定它所创建的对象的时候。
3、当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
abstractclassProductFM
{
}
classConcreteProductA: ProductFM
{
}
classConcreteProductB: ProductFM
{
}
abstractclassCreatorFM
{
publicabstractProductFMFactoryMethod();
}
classConcreteCreatorA: CreatorFM
{
publicoverrideProductFMFactoryMethod()
{
returnnewConcreteProductA();
}
}
classConcreteCreatorB: CreatorFM
{
publicoverrideProductFMFactoryMethod()
{
returnnewConcreteProductB();
}
}
调用:
CreatorFM[] creators = newCreatorFM[2];
creators[0] = newConcreteCreatorA();
creators[1] = newConcreteCreatorB();
foreach(CreatorFMcreator increators)
{
ProductFMproduct = creator.FactoryMethod();
Console.WriteLine("Created {0}",
product.GetType().Name);
}
输出:
Created ConcreteProductA
Created ConcreteProductB