今天给大家讲讲生成器模式的关键要点
这个设计模式里有的关键元素有:主管(Director),生成器(Builder),具体生成器(Concrete Builder)
做一个现实生活的类比,让大家更便于理解。
具体生成器有点像全能装修工人,一个人可以独立的完成房子的装修工作。然后主管就像是装修队长,依据装修图纸来指挥装修工人干活,最终装修工人交付一套装修好的房子。
那么抽象的生成器就有点像装修工人的培训标准。
那么问题来了,为什么还需要不同种类的具体生成器呢?
为什么要选择生成器模式:
- 复杂对象的构造过程繁琐:对象的构造需要多个步骤或组件组合时,直接通过构造函数会导致参数过多或逻辑混乱;生成器模式是如何解决这个复杂度的:抽象出对象构造范式,客户端仅感知这些范式,具体的构造过程委托给生成器
- 避免构造过程的重复代码:当多个相似对象构造流程相同时,可以复用同一构建过程。
- 灵活控制构造过程:允许在构造过程中调整步骤或配置,生成不同形态的对象(比如产品最小集,标准产品,豪华版产品)
- 解耦构造逻辑和业务逻辑:业务逻辑在具体的生成器中实现,构造逻辑在主管类中实现;提高代码的可维护性与可读性。