设计模式简述(五)建造者模式

发布于:2025-04-07 ⋅ 阅读:(19) ⋅ 点赞:(0)

描述

建造者模式属于创造型设计模式。
通常用于构建一系列复杂对象,这些对象有一定的共性。
我们可以通过不同的建造者,组装不同的对象

与工厂模式的区别,建造者模式更侧重与基于基础构件组装而非直接创建基础构件

基本要素

  • 定义产品类
public class Product {
    public void method() {
	// code
    }
}
  • 定义抽象建造者
public abstract class Builder {
    public abstract void process();

    public abstract Product build();
}
  • 定义具体建造者
public class ABuilder extends Builder {
    Product product = new Product();

    @Override
    public void process() {
        product.method1();
        product.method2();
    }

    @Override
    public Product build() {
        return product;
    }
}

public class BBuilder extends Builder {
    Product product = new Product();

    @Override
    public void process() {
        product.method1();
        product.method3();
    }

    @Override
    public Product build() {
        return product;
    }
}

协调类

与工厂方法类似,为了避免调用方与众多建造者子类直接交互。
我们可以定义一个中间协调类

public class BuilderCoordinator {
    private Builder aBuilder = new ABuilder();
    private Builder bBuilder = new BBuilder();

    public Product AProduct() {
        aBuilder.process();
        return aBuilder.build();
    }
    public Product BProduct() {
        aBuilder.process();
        return aBuilder.build();
    }
}

使用

public class Sample {
    public static void main(String[] args) {
        BuilderCoordinator coordinator = new BuilderCoordinator();
        Product ap = coordinator.AProduct();
        Product bp = coordinator.BProduct();
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到