您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么使用Java建造者模式構(gòu)建復(fù)雜對象”,在日常操作中,相信很多人在怎么使用Java建造者模式構(gòu)建復(fù)雜對象問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Java建造者模式構(gòu)建復(fù)雜對象”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
Java中的建造者模式是一種創(chuàng)建型設(shè)計模式,它的主要目的是為了通過一系列簡單的步驟構(gòu)建復(fù)雜的對象,允許創(chuàng)建復(fù)雜對象的不同表示形式,同時隱藏構(gòu)造細(xì)節(jié).它能夠逐步構(gòu)建對象,即先創(chuàng)建基本對象,然后逐步添加更多屬性或部件,直到最終構(gòu)建出完整的對象.
該模式的主要思想是將對象的構(gòu)造過程分解成多個步驟,每個步驟都可以獨立運行,并且在每個步驟完成后都可以返回一個中間狀態(tài),然后使用一個導(dǎo)演類來協(xié)調(diào)這些步驟,最終創(chuàng)建出完整的對象.
建造者模式通常包括一下角色:
產(chǎn)品類(Product):被構(gòu)造出來的復(fù)雜對象,它具有多個屬性或部件.
抽象構(gòu)造者類(Builder):定義了構(gòu)建復(fù)雜對象所需的方法和屬性.
具體建造者類(ConcreteBuilder):實現(xiàn)抽象建造者類中定義的方法和屬性,并返回最終構(gòu)造的對象
導(dǎo)演類(Director):負(fù)責(zé)協(xié)調(diào)各個具體建造者類的構(gòu)建過程,以及返回最終構(gòu)造的對象,
首先創(chuàng)建一個產(chǎn)品類
package com.fanqiechaodan.build; import lombok.Data; /** * @Classname Car * @Description 產(chǎn)品類 */ @Data public class Car { private String brand; private String model; private String color; private int maxSpeed; }
其次創(chuàng)建抽象建造者類
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; } }
然后創(chuàng)建具體構(gòu)造者類
package com.fanqiechaodan.build; /** * @Classname BMWBuilder * @Description 具體構(gòu)造者類 */ 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); } }
創(chuàng)建導(dǎo)演類
package com.fanqiechaodan.build; /** * @Classname Director * @Description 導(dǎo)演類 */ 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()); } }
到此,關(guān)于“怎么使用Java建造者模式構(gòu)建復(fù)雜對象”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。