Java中的@builder建造者模式詳細解析
@Builder
@Builder 是 Lombok 提供的一個注解,用于自動生成建造者模式的相關(guān)代碼。
通過在類上添加 @Builder 注解,Lombok 會自動生成一個內(nèi)部靜態(tài)類作為建造者,并在原始類中添加一個私有構(gòu)造函數(shù)。
使用 @Builder 注解可以簡化手動編寫建造者模式的代碼,使代碼更加簡潔易讀。
它可以自動生成鏈式調(diào)用的方法來設(shè)置對象的屬性,并且可以在需要時進行可選屬性的設(shè)置。
@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)用的方式設(shè)置 Person 對象的屬性,并通過 build() 方法來構(gòu)建最終的對象。build() 方法會返回一個 Person 對象。
@Builder 注解還具有其他一些可選的配置選項,例如可以使用 @Builder.Default 注解設(shè)置屬性的默認值,可以使用 @Singular 注解處理集合類型的屬性等。通過這些配置選項,可以進一步定制生成的建造者模式的代碼。
需要注意的是,使用 @Builder 注解需要事先在項目中引入 Lombok 相關(guān)的依賴,并確保 IDE 配置中已啟用 Lombok 插件,以使 Lombok 注解生效。
總而言之,@Builder 是 Lombok 提供的一個注解,用于自動生成建造者模式的相關(guān)代碼。它可以簡化手動編寫建造者模式的代碼,使代碼更加簡潔易讀。通過使用 @Builder 注解,可以方便地創(chuàng)建和設(shè)置對象的屬性,并生成最終的對象。
建造者模式使用示例
下面再舉例一些使用建造者模式的例子:
創(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)用設(shè)置屬性。
構(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)建了一個圖書對象,并可以方便地設(shè)置圖書的各個屬性。
創(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)建訂單對象,并設(shè)置訂單的各個屬性。
構(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)用設(shè)置配置的各個屬性。
通過使用 @Builder 注解,可以簡化創(chuàng)建復雜對象的過程,并提供了一種清晰、簡潔的方式來設(shè)置對象的屬性。它遵循建造者模式的原則,將對象的構(gòu)建過程與其表示分離,并提供了靈活性和可讀性。同時,使用 Lombok 的 @Builder 注解還可以減少手動編寫建造者模式的代碼量。
到此這篇關(guān)于Java中的@builder建造者模式詳細解析的文章就介紹到這了,更多相關(guān)@builder建造者模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
安卓系統(tǒng)中實現(xiàn)搖一搖畫面振動效果的方法
這篇文章主要介紹了安卓系統(tǒng)中實現(xiàn)搖一搖畫面振動效果的方法,調(diào)用Android SDK中的SensorEventListener接口,需要的朋友可以參考下2015-07-07Java多線程實現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信)
這篇文章主要介紹了Java多線程實現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10SpringBoot+Vue+Redis實現(xiàn)單點登錄(一處登錄另一處退出登錄)
小編接到一個需求,需要實現(xiàn)用戶在瀏覽器登錄后,跳轉(zhuǎn)到其他頁面,當用戶在其它地方又登錄時,前面用戶登錄的頁面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實現(xiàn)單點登錄,需要的朋友可以參考下2019-12-12DUBBO 日志過濾器,輸出dubbo 接口調(diào)用入?yún)?、出參等信?最新推薦)
這篇文章主要介紹了DUBBO 日志過濾器,輸出dubbo 接口調(diào)用入?yún)?、出參等信?首先自定義一個過濾器?DubboLoggerFilter.java,本文結(jié)合示例代碼給大家講解的非常詳細,需要的朋友可以參考下2022-12-12IDEA:Git stash 暫存分支修改的實現(xiàn)代碼
這篇文章主要介紹了IDEA:Git stash 暫存分支修改的實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Spring Data JPA例子代碼[基于Spring Boot、Mysql]
這篇文章主要介紹了Spring Data JPA例子代碼[基于Spring Boot、Mysql],小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04