黑马程序员:Java培训、Android培训、iOS培训、.Net培训

           黑马程序员--工厂方法模式

一、定义

        定义一个用于创建对象的接口,让子类决定实例化哪一个类。

二、工厂方法模式类图

    

     Creator依赖于它的子类定义工厂方法,并且该工厂方法返回一个适当的Product子类对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的Product子类对象。

三、适用性

    1、当一个类不知道它所必须创建的对象的类的时候。

    2、当一个类希望由它的子类来指定所创建的对象的时候。

    3、当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

   

四、使用工厂方法模式需要考虑的问题

    1、Creator有两种实现方式

      (1)Creator是一个抽象类并且不提供它所声明的工厂方法的实现。这就需要其子类来实现工厂方法的定义,但,因为没有合理的缺省实现,避免不了不得不实例化不可预见类。

      (2)Creator是一个具体的类而且为工厂方法提供一个缺省的实现。这样,Creator使用工厂方法使其具有灵活性(其子类可以改变父类所实例化的对象的类)。

    2、参数化工厂方法

    3、使用命名约定

 

写在模式之前:http://www.cnblogs.com/oo-lab/articles/4593399.html

策略模式:http://www.cnblogs.com/oo-lab/articles/4593407.html
迭代器模式:http://www.cnblogs.com/oo-lab/articles/4593416.html
观察者模式:http://www.cnblogs.com/oo-lab/articles/4593418.html
命令模式:http://www.cnblogs.com/oo-lab/articles/4593425.html
模板方法模式:http://www.cnblogs.com/oo-lab/articles/4593428.html
状态模式:http://www.cnblogs.com/oo-lab/articles/4593429.html

单件模式:http://www.cnblogs.com/oo-lab/articles/4593432.html
工厂方法模式:http://www.cnblogs.com/oo-lab/articles/4593435.html
抽象工厂模式:http://www.cnblogs.com/oo-lab/articles/4593440.html
生成器模式:http://www.cnblogs.com/oo-lab/articles/4593444.html