JAVA设计模式:建造者模式原理与代码理解

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA设计模式:建造者模式原理与代码理解相关的知识,希望对你有一定的参考价值。

文章目录

1、概念

建造者模式:将复杂对象的构造与它的实现相分离,让相同的构建过程可以创建不同的对象。

适用场合:复杂对象的算法应该独立于该对象的组成部分或当构造过程允许被构造不同的对象时。

组成角色:

  1. 创建者(Builder)接口:为创建一个对象的对应部件所指定抽象接口。
  2. 具体创建者(ConcreteBuilder):实现Builder的接口以构造对象的各个部件。
  3. 具体创建者管理对象(Director):使用Builder接口的对象。
  4. 复杂产品对象(Product):被构造的复杂对象。

2、代码理解

拿小汽车生产过程为例子

创建者:

/**
 * 生产汽车:创建者Builder接口
 */
public interface CarBuilder 
  void carRoof();//生产车顶
  void carBottom();//生产车底盘
  void carWheel();//生产车轮
  Car buildCar();

具体创建者

/**
 * 具体创建对象ConcreteBuilder:白色汽车
 */
public class WhiteCar implements CarBuilder 
  Car car;
  public WhiteCar() 
    car = new Car();
  
  @Override
  public void carRoof() 
    car.setRoof("制造白色汽车---车顶");
  
  @Override
  public void carBottom() 
    car.setBottom("制造白色汽车---车底");
  
  @Override
  public void carWheel() 
    car.setWheel("制造白色汽车---车轮");
  
  @Override
  public Car buildCar() 
    // TODO Auto-generated method stub
    return car;
  

具体创建者管理对象

/**
 * 具体创建者管理对象(Director),建造者
 */
public class CarDirector 
  public Car constructPerson(CarBuilder carBuilder) 
    carBuilder.carRoof();
    carBuilder.carBottom();
    carBuilder.carWheel();
    return carBuilder.buildCar();
  

复杂产品对象

/**
 * 最终生产的'复杂产品'对象
 */
public class Car 
  private String roof;// 车顶
  private String bottom;// 车底
  private String wheel;// 车轮
  public String getRoof() 
    return roof;
  
  public void setRoof(String roof) 
    this.roof = roof;
  
  public String getBottom() 
    return bottom;
  
  public void setBottom(String bottom) 
    this.bottom = bottom;
  
  public String getWheel() 
    return wheel;
  
  public void setWheel(String wheel) 
    this.wheel = wheel;
  

测试代码:

public class Test 
  public static void main(String[] args) 
    CarDirector carDirector = new CarDirector();
    Car car = carDirector.constructPerson(new WhiteCar());
    System.out.println(car.getRoof());
    System.out.println(car.getBottom());
    System.out.println(car.getWheel());
    System.out.println("----整个车子就完成了!--");
  

运行结果如下:

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于JAVA设计模式:建造者模式原理与代码理解的主要内容,如果未能解决你的问题,请参考以下文章

java设计模式之建造者模式

java设计模式之建造者模式

Java设计模式-建造者模式

JAVA设计模式 4创建型理解建造者模式

Java设计模式14:建造者模式

Java设计模式菜鸟系列(十五)建造者模式建模与实现