- 定义
将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
- 优点
1. 易扩展。
2. 便于控制细节风险。可以对建造过程逐步细化,而不对其他模块产生任何影响。
3. 封装性,使用者不需要知道内部具体实现。
- 缺点
1.功能必须有共同点。
2. 如果产品内部错综复杂,需要定义很多个建造者类,使系统变得庞大。
- 使用场景
1. 隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果。
2. 初始化一个对象时,参数过多或者有很多参数具有默认值。
3. 多个部件或零件,都可以装配到一个对象中,但产生的结果又不相同时。
4. 需要生成的产品对象有复杂的内部结构,这些产品对象具备共性。