构建者模式 是简化用户的过度参与才能一个穿件对象,这样对象的创建细节用户不用知道,可以抽象出一类产品的创建。
························································································································
场景描述:以鱼、青菜为材料做一道菜,厨师可用“煎炒烹炸”多种烹饪方式来做这道菜,可以得到“水煮鱼”、“红烧鱼”、“炸鱼条”等多种菜肴
在这个场景中:
部件为“鱼”、“青菜”
构建算法为“煎炒烹炸”不同的烹饪方式
生成对象为“菜肴”
不同的烹饪方式对应着不同的菜肴表现
不同的“鱼”(部件表现),青花鱼、鲤鱼等,和鱼或青菜的数量(部件数目),并不影响到最终的菜肴类型
····························································································································
builder 模式中让用户( 食客)不直接去生产对象(烹饪),而是把自己的诉求告诉director(在大堂经理那里点菜)。director决定由哪个builder来生产对象组件。然后由director控制组价的具体安装步骤【当然现实中的大堂经理会直接高速厨师直接烹饪出哪道菜,没有组装的这个过程】不同的厨师手里有相同的原料,但是烹饪手法不一样,做出来的具体菜肴也不一样。
可以想象客户点的是一桌子菜,凉菜,热汤,主材,甜点。 builder是一个厨房的整体,高速厨房首先生产凉菜,再做热汤,再做主菜,再做甜点。厨房里面的厨师负责这些菜的烹饪。
构建者模式中对象的创建过程一般极其复杂,可能需要通过一系列的运算,但是创建过程又可以抽象出相同的组件及装配过程的时候。