小兔网

1、定义以及 UML 建模图

将一个复杂的对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。

2021071306381016001190

2、使用场景:

多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又相同。

产品类非常复杂,或者产品类中调用顺序不同产生了不同的作用。

初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数,并且都有默认值时。

3、核心类

  • (1) 抽象产品类 computer。
  • (2) Builder 抽象 Builder,规范产品的组建,一般是由子类实现具体的组建过程。
  • (3)MacbookBuilder 具体的Builder类,具体的创建对象的类。
  • (4) Directror 统一组建过程。

以组装一台计算机为主,主要进行组装主机,设置操作系统,设置显示器。

4、具体使用

4.1 计算机抽象类 Computer

Computer.java

public abstract class Computer { protected String mBoard; protected String mDisplay; protected String mOs; protected Computer(){ } public void setBoard(String board){ mBoard=board; } public void setDisplay(String display) { this.mDisplay = display; } public abstract void setOs() ; @Override public String toString() { return "Computer{" + "mBoard='" + mBoard + '\'' + ", mDisplay='" + mDisplay + '\'' + ", mOs='" + mOs + '\'' + '}'; }}

4.2 具体产品类 MacBook

MacBook.java

public class MacBook extends Computer{ protected MacBook() { } @Override public void setOs() { mOs="Mac OS X 12"; }}

4.3 抽象 Builder

Builder.java

public abstract class Builder { abstract void buildBoard(String board); abstract void buildDisplay(String display); abstract void buildOs(); abstract Computer build(); }