java中的建造者模式是一种创建型设计模式,它的主要目的是为了通过一系列简单的步骤构建复杂的对象,允许创建复杂对象的不同表示形式,同时隐藏构造细节.它能够逐步构建对象,即先创建基本对象,然后逐步添加更多属性或部件,直到最终构建出完整的对象.
该模式的主要思想是将对象的构造过程分解成多个步骤,每个步骤都可以独立运行,并且在每个步骤完成后都可以返回一个中间状态,然后使用一个导演类来协调这些步骤,最终创建出完整的对象.
建造者模式通常包括一下角色:
产品类(Product):被构造出来的复杂对象,它具有多个属性或部件.
抽象构造者类(Builder):定义了构建复杂对象所需的方法和属性.
立即学习“Java免费学习笔记(深入)”;
具体建造者类(ConcreteBuilder):实现抽象建造者类中定义的方法和属性,并返回最终构造的对象
导演类(Director):负责协调各个具体建造者类的构建过程,以及返回最终构造的对象,
首先创建一个产品类
package com.fanqiechaodan.build;
import lombok.Data;
/**
* @Classname Car
* @Description 产品类
*/
@Data
public class Car {
private String brand;
private String model;
private String color;
private int maxSpeed;
}其次创建抽象建造者类
package com.fanqiechaodan.build;
/**
* @Classname CarBuilder
* @Description 抽象建造者类
*/
public abstract class CarBuilder {
protected Car car;
public CarBuilder(){
car = new Car();
}
public abstract void buildBrand();
public abstract void buildModel();
public abstract void buildColor();
public abstract void buildMaxSpeed();
public Car getCar() {
return car;
}
}然后创建具体构造者类
package com.fanqiechaodan.build;
/**
* @Classname BMWBuilder
* @Description 具体构造者类
*/
public class BMWBuilder extends CarBuilder {
@Override
public void buildBrand() {
car.setBrand("BMW");
}
@Override
public void buildModel() {
car.setModel("X6");
}
@Override
public void buildColor() {
car.setColor("Black");
}
@Override
public void buildMaxSpeed() {
car.setMaxSpeed(218);
}
}创建导演类
package com.fanqiechaodan.build;
/**
* @Classname Director
* @Description 导演类
*/
public class Director {
private CarBuilder carBuilder;
public Director(CarBuilder carBuilder) {
this.carBuilder = carBuilder;
}
public Car constructCar() {
carBuilder.buildBrand();
carBuilder.buildColor();
carBuilder.buildMaxSpeed();
carBuilder.buildModel();
return carBuilder.getCar();
}
}测试
package com.fanqiechaodan.build;
/**
* @Classname Demo
* @Description 建造者模式
*/
public class Demo {
public static void main(String[] args) {
CarBuilder carBuilder = new BMWBuilder();
Director director = new Director(carBuilder);
Car car = director.constructCar();
System.out.println(car.toString());
}
}
以上就是怎么使用Java建造者模式构建复杂对象的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号