建造者模式:组装复杂实例

建造者模式的生命周期通常包括以下步骤:

  1. 创建一个建造者对象
  2. 调用该创建者对象的一系列设置方法,以指定对象的各个属性
  3. 调用build()方法,该方法将运行实际的构建过程
  4. 返回构建的对象

建造者模式可以减少代码的重复性,并且可以简化创建复杂对象的过程,从而提高代码的可读性和可维护性。由于它提供了灵活的构造选项,因此建造者模式尤其适用于创建具有多个可选属性的对象。

建造者模式通常涉及四个主要组件:产品(Product),建造者(Builder),指挥者(Director)和客户端(Client)。

  1. 产品 是我们要构建的对象,它具有一系列属性和方法。
  2. 建造者 是一个具有构建产品各个组成部分的接口或抽象类。它定义了构建对象所需的方法,并且可以有多种实现。
  3. 指挥者 是负责协调建造者的对象。它负责确保构造器按正确的顺序调用,最终构建出目标对象,同时它可能也包含一些逻辑,比如提供默认值和默认构造器等。
  4. 客户端 是调用指挥者构建对象的代码。它只需要实例化指挥者和相应的建造者,并将建造器传递给指挥者即可。

示例代码:

public class Product {
private String partA;
private String partB;
private String partC;
public void setPartA(String partA) {
this.partA = partA;
}
public void setPartB(String partB) {
this.partB = partB;
}
public void setPartC(String partC) {
this.partC = partC;
}
public void show() {
System.out.println("Part A: " + partA);
System.out.println("Part B: " + partB);
System.out.println("Part C: " + partC);
}
}
public interface Builder {
void buildPartA();
void buildPartB();
void buildPartC();
Product getResult();
}
public class ConcreteBuilder implements Builder {
private Product product = new Product();
@Override
public void buildPartA() {
product.setPartA("partA");
}
@Override
public void buildPartB() {
product.setPartB("partB");
}
@Override
public void buildPartC() {
product.setPartC("partC");
}
@Override
public Product getResult() {
return product;
}
}
public class Director {
public void construct(Builder builder) {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director();
director.construct(builder);
Product product = builder.getResult();
product.show();
}
}
posted @   穆海如枫  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示