设计模式之工厂模式

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