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

             黑马程序员--生成器模式

一、定义

        将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

二、工厂方法模式类图

    

1)  Builder为创建一个Product对象的各个部件指定抽象接口,而ConcreteBuilder创建该产品的部件并实现相关细节,并且实现产品装配的流程。

2)  Director构造一个使用Builder接口的对象(ConcreteBuilder对象),并创建产品所需的各个部件。当然,Director的功能可以内嵌到Builder中。

3)  Product表示被构造的复杂对象。包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

三、适用性

    1、当创建复杂对象的算法应该独立与该对象的组成部分以及它们的装配方式时。

    2、当构造过程必须允许被构造的对象有不同的表示时。

   

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

    1、装配和构造接口

         Builder接口必须足够普遍。同时,关键的设计问题在于构造和装配过程的模型。

    2、产品为什么没有抽象类

         一般而言,由生成器生成的产品差异很大。

   

写在模式之前: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