封装一个对象的构造过程,并允许按步骤构造。
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。
主要作用:可以在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。
建造者模式具体的例子有两种实现方式:
- 通过静态内部类方式实现零件无序装配
- 通过Client、Director、Builder和Product形成的建造者模式
通过静态内部类方式实现零件无序装配
1 | package cn.xiaohupao.builder; |
1 | package cn.xiaohupao.builder; |
通过Client、Director、Builder和Product形成的建造者模式
1 | package cn.xiaohupao.builder; |
1 | package cn.xiaohupao.builder; |
1 | package cn.xiaohupao.builder; |
1 | package cn.xiaohupao.builder; |
1 | package cn.xiaohupao.builder; |
优点:产品的建造和表示分离,实现解耦;将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰;增加新的具体建造者无需修改原有类库的代码、易于拓展,符合“开闭原则”。
缺点:产品必须有共同点,限制了使用范围;如内部变化复杂。会有很多的建造类,难以维护。
应用场景:需要生成的产品对象有复杂的内部结构,这些产品对象具备共性;隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品;需要生成的对象内部属性本身相互依赖;适用于一个具有较多的零件的产品的创建过程。