Java中的@builder建造者模式詳細解析
@Builder
@Builder 是 Lombok 提供的一個注解,用于自動生成建造者模式的相關代碼。
通過在類上添加 @Builder 注解,Lombok 會自動生成一個內(nèi)部靜態(tài)類作為建造者,并在原始類中添加一個私有構(gòu)造函數(shù)。
使用 @Builder 注解可以簡化手動編寫建造者模式的代碼,使代碼更加簡潔易讀。
它可以自動生成鏈式調(diào)用的方法來設置對象的屬性,并且可以在需要時進行可選屬性的設置。
@Builder 注解示例
下面是一個使用 @Builder 注解的示例:
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Person {
private String name;
private int age;
private String address;
private String phoneNumber;
}在上面的示例中,我們使用 @Builder 注解標注了 Person 類。Lombok 會自動生成一個內(nèi)部靜態(tài)類 PersonBuilder 作為建造者,并在 Person 類中添加一個私有構(gòu)造函數(shù)。
現(xiàn)在,我們可以使用自動生成的建造者來創(chuàng)建 Person 對象,如下所示:
Person person = Person.builder()
.name("John")
.age(30)
.address("123 Main St")
.phoneNumber("555-1234")
.build();在上面的代碼中,我們使用鏈式調(diào)用的方式設置 Person 對象的屬性,并通過 build() 方法來構(gòu)建最終的對象。build() 方法會返回一個 Person 對象。
@Builder 注解還具有其他一些可選的配置選項,例如可以使用 @Builder.Default 注解設置屬性的默認值,可以使用 @Singular 注解處理集合類型的屬性等。通過這些配置選項,可以進一步定制生成的建造者模式的代碼。
需要注意的是,使用 @Builder 注解需要事先在項目中引入 Lombok 相關的依賴,并確保 IDE 配置中已啟用 Lombok 插件,以使 Lombok 注解生效。
總而言之,@Builder 是 Lombok 提供的一個注解,用于自動生成建造者模式的相關代碼。它可以簡化手動編寫建造者模式的代碼,使代碼更加簡潔易讀。通過使用 @Builder 注解,可以方便地創(chuàng)建和設置對象的屬性,并生成最終的對象。
建造者模式使用示例
下面再舉例一些使用建造者模式的例子:
創(chuàng)建用戶對象(User):
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class User {
private String username;
private String password;
private String email;
private boolean isActive;
}通過 @Builder 注解,我們可以輕松創(chuàng)建用戶對象,并使用鏈式調(diào)用設置屬性。
構(gòu)建圖書對象(Book):
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Book {
private String title;
private String author;
private String publisher;
private int year;
private double price;
}在這個示例中,我們使用 @Builder 注解創(chuàng)建了一個圖書對象,并可以方便地設置圖書的各個屬性。
創(chuàng)建訂單對象(Order):
import lombok.Builder;
import lombok.Getter;
import java.util.List;
@Getter
@Builder
public class Order {
private String orderId;
private List<String> items;
private String customerName;
private String shippingAddress;
}通過 @Builder 注解,我們可以快速構(gòu)建訂單對象,并設置訂單的各個屬性。
構(gòu)建配置對象(Configuration):
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Configuration {
private String appName;
private String databaseUrl;
private String username;
private String password;
private int port;
}在這個示例中,我們使用 @Builder 注解創(chuàng)建了一個配置對象,并可以使用鏈式調(diào)用設置配置的各個屬性。
通過使用 @Builder 注解,可以簡化創(chuàng)建復雜對象的過程,并提供了一種清晰、簡潔的方式來設置對象的屬性。它遵循建造者模式的原則,將對象的構(gòu)建過程與其表示分離,并提供了靈活性和可讀性。同時,使用 Lombok 的 @Builder 注解還可以減少手動編寫建造者模式的代碼量。
到此這篇關于Java中的@builder建造者模式詳細解析的文章就介紹到這了,更多相關@builder建造者模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換
與前端聯(lián)調(diào)接口時,后端一些字段設計為Long類型,這樣就有可能導致前端缺失精度,這時候我們就需要將Long類型返回給前端時做數(shù)據(jù)類型轉(zhuǎn)換,本文主要介紹了springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換,感興趣的可以了解一下2023-11-11
Java中spring boot 字符串判斷是否為空方法小結(jié)
這篇文章主要介紹了Java中spring boot字符串判斷是否為空,通過安裝依賴,結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11
SpringBoot中Pageable分頁參數(shù)的自動提取與全局復用
在現(xiàn)代 Web 應用開發(fā)中,分頁是處理大量數(shù)據(jù)的標配功能,本文將帶你實現(xiàn) 分頁參數(shù)的自動提取、自定義配置與全局復用,感興趣的小伙伴可以跟隨小編一起學習一下2026-02-02
Reactor3 Map與FlatMap的區(qū)別示例詳解
這篇文章主要為大家介紹了Reactor3 Map與FlatMap的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08

