【設計模式】Java設計模式 - 建造者模式
?? 不斷學習才是王道
?? 繼續踏上學習之路,學之分享筆記
?? 總有一天我也能像各位大佬一樣
?? @一個有夢有戲的人 @怒放吧德德
??分享學習心得,歡迎指正,大家一起學習成長!
雖然很疲倦,但也要堅持學習!!!
目錄- 【設計模式】Java設計模式 - 建造者模式
- 簡介
- 建造者模式實體
- ①、定義配置類
- ②、定義構建類
- ③、構建套票物件
簡介
構建者是一種可以將復雜物件的構建和表示分離開來,從而使得一個構建程序可以生成多個不同的表示物件,建造者模式通過一步一步構建物件,
在構建物件可以通過new的方式或者工廠模式去實體化物件,但是有些物件就比較復雜,有些物件會不斷的細分,并且不用型別的物件有不同的物件,倘若通過new或者工廠模式也會造成許多不變,由此可以通過Builder模式,既然集體構建比較復雜,那就一步一步的構建,
舉個例子,就比如班車票,對于不同的物件有不同的優惠和規定,

通過配置類去統籌,在吧所有資訊交給構建器去一個一個構建,等所有的票都構建完成之后,我們在通過構建器來構建套票物件,這樣層層遞進就會使得不這么復雜

建造者模式實體
本次實驗通過配置類、構建類來完成,通過配置類做好各個方法來模擬對應票類的邏輯構造,通過構建器構建套票物件
①、定義配置類
通過不同的型別去構建不同的票類邏輯
package com.lyd.demo.builder.helper;
/**
* @Author: lyd
* @Description: 票的配置類
* @Date: 2022-08-23
*/
public class TicketHelper {
public void buildAdult(String info) {
// TODO 撰寫邏輯
System.out.println("構建成年人票邏輯:" + info);
}
public void buildChildrenForSeat(String info) {
// TODO 撰寫邏輯
System.out.println("構建有座兒童票邏輯:" + info);
}
public void buildchildrenForSeat(String info) {
// TODO 撰寫邏輯
System.out.println("構建無座兒童票邏輯:" + info);
}
public void buildElderly(String info) {
// TODO 撰寫邏輯
System.out.println("構建老年人票邏輯:" + info);
}
public void buildSoldier(String info) {
// TODO 撰寫邏輯
System.out.println("構建軍人及其家屬票邏輯:" + info);
}
}
②、定義構建類
Builder類比較簡單,只有一個helper類,但是可以獲得套票中的所有資訊,從而構建出套票物件
package com.lyd.demo.builder;
import com.lyd.demo.builder.helper.TicketHelper;
/**
* @Author: lyd
* @Description: 構建類
* @Date: 2022-08-23
*/
public class TickerBuilder {
public static Object builder(TicketHelper helper) {
// TODO 構建邏輯
System.out.println("通過TickerBuilder構建票資訊");
return null; // 回傳票的物件
}
}
③、構建套票物件
通過TicketHelper去構建資訊,在通過builder去構建出物件,
package com.lyd.demo.builder.test;
import com.lyd.demo.builder.TickerBuilder;
import com.lyd.demo.builder.helper.TicketHelper;
/**
* @Author: lyd
* @Description: 測驗類
* @Date: 2022-08-20
*/
public class TickerBuilderTest {
public static void main(String[] args) {
TicketHelper helper = new TicketHelper();
helper.buildAdult("成人票");
helper.buildChildrenForSeat("有座兒童票");
helper.buildchildrenForSeat("無座兒童票");
helper.buildElderly("老人票");
helper.buildSoldier("軍人票");
Object ticker = TickerBuilder.builder(helper);
}
}
運行結果:

??德德小建議:
理解設計模式不是一件簡單的事情,需要不斷的學習和動手去練習,才能理解,只有掌握好設計模式,才能夠真正的理解SpringAOP和Mybatis的底層原理,各位讀者可以和我一樣,動手敲一敲代碼,甚至用不同的例子來做,通過debug一步一步除錯,還有就是多看看別人的例子,能夠有助于理解!謝謝各位觀看指點!?? ?? ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/504507.html
標籤:其他
下一篇:設計模式之(9)——配接器 模式
