生成器的模型描述



1。将复杂对象的结构与表示分开,以便相同的创建过程可以具有不同的表示,称为生成器模型。

2。在面向对象语言中的描述,主要作用:



1 >。生成器,接口类,定义构建器{ },一个统一的可操作的行为,它代表一个复杂的结构对象;

2 >。具体建造者是用于创建各种形式的{ } Builder实现代表者不同的表示实例;

3 >。指挥部主任用于指导生成器实例的执行过程和形式,用于将实例与生成器分离,并用于指导生成器实例以按常规顺序创建产品结果。

创建的结果为4 >。resultobject将生成一个结果对象;这是一个基于导演的指导具体的造物主创造的结果;



3、生成器模式实际上是一个指挥官、一个构建器、一个调用特定构建器工作的客户机,并从特定的构建者那里获得结果。

4。生成器模式,模拟场景:{看到一个描述生成器模式的例子是很好的}



说一家人要盖一栋房子,但房子的主人或其他的家庭是不知道怎么建房子的,所以他只好请一些工人来盖房子,队伍里有一个工头,根据业主的想法建造一栋房子,业主的要求根据实际设计要求工人们怎么办;

工头说,第一步是先把房子的骨架全部搭建起来,再建造第二层卧室,用第三个步骤装饰厨房,用第四个步骤、第五个步骤装饰客厅。

工头不工作,但混凝土建造工必须服从工头的要求。第一步是建造第二步,直到整个房子完工。

创作者必须具备建造房屋的所有技能,即建造骨架、装饰卧室等,也就是说,建筑者的能力或能力必须大于或等于指挥官想要做的或有能力做的。

也就是说,指挥是组织者,建设者提供技能。



5。Javascript,在这样一种弱语言中,没有接口之类的东西,所以我们忽略了接口定义,直接创建了一个特定的生成器,并构建了一个引导类来回调生成器。



示例源代码



1。工人建设者X:

复制代码代码如下所示:

功能workerbuilder(){

this.workone =函数(){

建造房屋{骨架}

}

这个工作=函数(){

卧室/大楼

}

这个workthree =函数(){

/厨房

}

这个workfour =函数(){

客厅/大楼

}

/…



this.getresult =函数(){

建造房屋

新房子();

/ /房子。houseframe…

回到家;

}

}





WorkBuilder是一个特定的生成器类,思想,二是该做的事,建立骨架等;

当然,workbuilder可以建立更多的,用以表明工人没有执行每一个工作方法;但工作是一样的。



2。导线类



复制代码代码如下所示:

功能总监(){

this.construct =功能(Builder){

Builder.workOne();

Builder.workTwo();

Builder.workThree();

builder.workfour();

/ /…

上面的内容,可以设置序列,还可以设置工作项

}

}





指挥类指导方法包括对施工人员的参考,包括施工人员的内容或内容。



三.产品的房子



复制代码代码如下所示:

函数库(){

this.houseframe =;

这个房间=;

这个厨房=;

this.livingroom =;

/ /…

}





4。使用方法



复制代码代码如下所示:

VaR建造新workbuilder();

独立董事=新董事();

Director.construct(建筑师);

VaR的房子= builder.getresult();



第四步,整个使用相当于顾客:房子的主人,房主要求厂长工头建造房子,但工头不工作,所以他指挥建筑工人建造儿子,最后业主从工人那里建造房子。

其他说明

为建造模式,内容{摘要}复杂,实际的场景更是不一样的,如工作秩序或不一致的情况;比如,每一天的生活啊,像上面的例子,类似的场景;通过引导层,可以工作在许多场合类似的减少,但工作规则不一致,为了减少环境;实际对象的抽象建筑;