何为生成器模式
将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现
我们举个🌰:
有时候我们虽然在同一家咖啡店点的相同的商品,有可能体验会相差很大。
第一次,nice,这个生椰拿铁真好喝,还是要相信网友推荐力量
第二次,nice,我点的生椰拿铁没有椰汁,椰汁哪里去了!!
第三次,这次就跟第一次一样了吧,再点一次生椰拿铁看看,怎么全是冰 完了、芭比Q了.........
为什么同一家同一款商品而且还是通过专业培训的咖啡师做的,有时候差异性会那么大呢?对于同样一款商品在某某咖啡中的制作流程可能细节到了使用多少克配料,冰量,这些都是有严格的把控的。通过这个简单的例子应该能帮助我们对生成器模式中的对象构建和表现分离这一思想有所启发。
何时使用生成器模式
需要创建涉及各种部件的复杂对象。创建对象的算法应该独立于部分的装配方式,常见例子是构建组合对象。
构建过程是稳定可抽象的,而构建对象所需的部件是可变动的
生成器模式静态类结构图
生成器模式由Director(指导者)、Builder(生成器)、Product(产品)三者构成
Director(咖啡制作流程):抽象对象构建流程
Builder(咖啡制作小姐姐):抽象对象构建部件方法
Product(咖啡):实际产品类