Java中的建造者模式是一種創建型設計模式,它的主要目的是為了透過一系列簡單的步驟建構複雜的物件,允許創建複雜物件的不同表示形式,同時隱藏構造細節.它能夠逐步構建對象,即先創建基本對象,然後逐步添加更多屬性或部件,直到最終構建出完整的對象.
該模式的主要思想是將對象的構造過程分解成多個步驟,每個步驟都可以獨立運行,並且在每個步驟完成後都可以返回一個中間狀態,然後使用一個導演類來協調這些步驟,最終創建出完整的對象.
建造者模式通常包含一下角色:
產品類別(Product):被建構出來的複雜物件,它具有多個屬性或元件.
抽象建構者類別(Builder):定義了建構複雜物件所需的方法與屬性.
具體建造者類別(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中文網其他相關文章!