首頁> Java> java教程> 主體

怎麼使用Java建造者模式建構複雜對象

WBOY
發布: 2023-05-10 13:34:12
轉載
1352 人瀏覽過

介紹

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建造者模式建構複雜對象

#

以上是怎麼使用Java建造者模式建構複雜對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!