生成器模式(Builder Pattern)是一种创建型设计模式,用于构建复杂的对象。这种模式将构造代码和表示代码分离开来,使得同样的构造过程可以创建不同的表示。
以下是一个简单的Java实现:
- // 产品
- class Product {
- private String partA;
- private String partB;
-
- public void setPartA(String partA) {
- this.partA = partA;
- }
-
- public void setPartB(String partB) {
- this.partB = partB;
- }
-
- public void show() {
- System.out.println("Product features: " + partA + ", " + partB);
- }
- }
-
- // 抽象生成器
- abstract class Builder {
- protected Product product = new Product();
-
- public abstract void buildPartA();
- public abstract void buildPartB();
-
- public Product getProduct() {
- return product;
- }
- }
-
- // 具体生成器
- class ConcreteBuilder extends Builder {
- public void buildPartA() {
- product.setPartA("FeatureA");
- }
-
- public void buildPartB() {
- product.setPartB("FeatureB");
- }
- }
-
- // 指挥者
- class Director {
- public void construct(Builder builder) {
- builder.buildPartA();
- builder.buildPartB();
- }
- }
-
- // 客户端代码
- public class Client {
- public static void main(String[] args) {
- Director director = new Director();
- Builder builder = new ConcreteBuilder();
- director.construct(builder);
- Product product = builder.getProduct();
- product.show();
- }
- }
在这个例子中,Builder 是抽象生成器,ConcreteBuilder 是它的具体实现。Director 是指挥者,它使用 Builder 的方法来创建 Product。客户端程序通过 Director 和 Builder 创建 Product。