欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的@builder建造者模式詳細(xì)解析

 更新時(shí)間:2024年01月30日 10:52:22   作者:小小懶懶  
這篇文章主要介紹了Java中的@builder建造者模式詳細(xì)解析,使用 @Builder 注解可以簡(jiǎn)化手動(dòng)編寫(xiě)建造者模式的代碼,使代碼更加簡(jiǎn)潔易讀,它可以自動(dòng)生成鏈?zhǔn)秸{(diào)用的方法來(lái)設(shè)置對(duì)象的屬性,并且可以在需要時(shí)進(jìn)行可選屬性的設(shè)置,需要的朋友可以參考下

@Builder

@Builder 是 Lombok 提供的一個(gè)注解,用于自動(dòng)生成建造者模式的相關(guān)代碼。

通過(guò)在類上添加 @Builder 注解,Lombok 會(huì)自動(dòng)生成一個(gè)內(nèi)部靜態(tài)類作為建造者,并在原始類中添加一個(gè)私有構(gòu)造函數(shù)。

使用 @Builder 注解可以簡(jiǎn)化手動(dòng)編寫(xiě)建造者模式的代碼,使代碼更加簡(jiǎn)潔易讀。

它可以自動(dòng)生成鏈?zhǔn)秸{(diào)用的方法來(lái)設(shè)置對(duì)象的屬性,并且可以在需要時(shí)進(jìn)行可選屬性的設(shè)置。

@Builder 注解示例

下面是一個(gè)使用 @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 注解標(biāo)注了 Person 類。Lombok 會(huì)自動(dòng)生成一個(gè)內(nèi)部靜態(tài)類 PersonBuilder 作為建造者,并在 Person 類中添加一個(gè)私有構(gòu)造函數(shù)。

現(xiàn)在,我們可以使用自動(dòng)生成的建造者來(lái)創(chuàng)建 Person 對(duì)象,如下所示:

Person person = Person.builder()
    .name("John")
    .age(30)
    .address("123 Main St")
    .phoneNumber("555-1234")
    .build();

在上面的代碼中,我們使用鏈?zhǔn)秸{(diào)用的方式設(shè)置 Person 對(duì)象的屬性,并通過(guò) build() 方法來(lái)構(gòu)建最終的對(duì)象。build() 方法會(huì)返回一個(gè) Person 對(duì)象。

@Builder 注解還具有其他一些可選的配置選項(xiàng),例如可以使用 @Builder.Default 注解設(shè)置屬性的默認(rèn)值,可以使用 @Singular 注解處理集合類型的屬性等。通過(guò)這些配置選項(xiàng),可以進(jìn)一步定制生成的建造者模式的代碼。

需要注意的是,使用 @Builder 注解需要事先在項(xiàng)目中引入 Lombok 相關(guān)的依賴,并確保 IDE 配置中已啟用 Lombok 插件,以使 Lombok 注解生效。

總而言之,@Builder 是 Lombok 提供的一個(gè)注解,用于自動(dòng)生成建造者模式的相關(guān)代碼。它可以簡(jiǎn)化手動(dòng)編寫(xiě)建造者模式的代碼,使代碼更加簡(jiǎn)潔易讀。通過(guò)使用 @Builder 注解,可以方便地創(chuàng)建和設(shè)置對(duì)象的屬性,并生成最終的對(duì)象。

建造者模式使用示例

下面再舉例一些使用建造者模式的例子:

創(chuàng)建用戶對(duì)象(User):

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class User {
    private String username;
    private String password;
    private String email;
    private boolean isActive;
}

通過(guò) @Builder 注解,我們可以輕松創(chuàng)建用戶對(duì)象,并使用鏈?zhǔn)秸{(diào)用設(shè)置屬性。

構(gòu)建圖書(shū)對(duì)象(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;
}

在這個(gè)示例中,我們使用 @Builder 注解創(chuàng)建了一個(gè)圖書(shū)對(duì)象,并可以方便地設(shè)置圖書(shū)的各個(gè)屬性。

創(chuàng)建訂單對(duì)象(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;
}

通過(guò) @Builder 注解,我們可以快速構(gòu)建訂單對(duì)象,并設(shè)置訂單的各個(gè)屬性。

構(gòu)建配置對(duì)象(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;
}

在這個(gè)示例中,我們使用 @Builder 注解創(chuàng)建了一個(gè)配置對(duì)象,并可以使用鏈?zhǔn)秸{(diào)用設(shè)置配置的各個(gè)屬性。

通過(guò)使用 @Builder 注解,可以簡(jiǎn)化創(chuàng)建復(fù)雜對(duì)象的過(guò)程,并提供了一種清晰、簡(jiǎn)潔的方式來(lái)設(shè)置對(duì)象的屬性。它遵循建造者模式的原則,將對(duì)象的構(gòu)建過(guò)程與其表示分離,并提供了靈活性和可讀性。同時(shí),使用 Lombok 的 @Builder 注解還可以減少手動(dòng)編寫(xiě)建造者模式的代碼量。

到此這篇關(guān)于Java中的@builder建造者模式詳細(xì)解析的文章就介紹到這了,更多相關(guān)@builder建造者模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 安卓系統(tǒng)中實(shí)現(xiàn)搖一搖畫(huà)面振動(dòng)效果的方法

    安卓系統(tǒng)中實(shí)現(xiàn)搖一搖畫(huà)面振動(dòng)效果的方法

    這篇文章主要介紹了安卓系統(tǒng)中實(shí)現(xiàn)搖一搖畫(huà)面振動(dòng)效果的方法,調(diào)用Android SDK中的SensorEventListener接口,需要的朋友可以參考下
    2015-07-07
  • Java多線程實(shí)現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信)

    Java多線程實(shí)現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信)

    這篇文章主要介紹了Java多線程實(shí)現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄(一處登錄另一處退出登錄)

    SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄(一處登錄另一處退出登錄)

    小編接到一個(gè)需求,需要實(shí)現(xiàn)用戶在瀏覽器登錄后,跳轉(zhuǎn)到其他頁(yè)面,當(dāng)用戶在其它地方又登錄時(shí),前面用戶登錄的頁(yè)面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄,需要的朋友可以參考下
    2019-12-12
  • Java初學(xué)者入門(mén)之繼承和多態(tài)

    Java初學(xué)者入門(mén)之繼承和多態(tài)

    Java 面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài),學(xué)好繼承和多態(tài)是面向?qū)ο箝_(kāi)發(fā)語(yǔ)言中非常重要的一個(gè)環(huán)節(jié),這篇文章主要給大家介紹了關(guān)于Java初學(xué)者入門(mén)之繼承和多態(tài)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • DUBBO 日志過(guò)濾器,輸出dubbo 接口調(diào)用入?yún)?、出參等信?最新推薦)

    DUBBO 日志過(guò)濾器,輸出dubbo 接口調(diào)用入?yún)?、出參等信?最新推薦)

    這篇文章主要介紹了DUBBO 日志過(guò)濾器,輸出dubbo 接口調(diào)用入?yún)?、出參等信?首先自定義一個(gè)過(guò)濾器?DubboLoggerFilter.java,本文結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java7到Java17之Switch語(yǔ)句進(jìn)化史示例詳解

    Java7到Java17之Switch語(yǔ)句進(jìn)化史示例詳解

    這篇文章主要為大家介紹了Java7到Java17之Switch語(yǔ)句進(jìn)化史示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 關(guān)于QueryWrapper高級(jí)使用示例

    關(guān)于QueryWrapper高級(jí)使用示例

    本文介紹了QueryWrapper的高級(jí)使用方法,包括查詢指定字段、使用MySQL函數(shù)處理字段、設(shè)置查詢限制等,通過(guò)select()可查詢指定字段并處理,last()方法實(shí)現(xiàn)limit效果,apply()可在查詢條件中使用函數(shù),這些技巧有助于提升數(shù)據(jù)庫(kù)操作的靈活性和效率
    2024-09-09
  • IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼

    IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼

    這篇文章主要介紹了IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Spring Data JPA例子代碼[基于Spring Boot、Mysql]

    Spring Data JPA例子代碼[基于Spring Boot、Mysql]

    這篇文章主要介紹了Spring Data JPA例子代碼[基于Spring Boot、Mysql],小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 帶你了解Spring AOP的使用詳解

    帶你了解Spring AOP的使用詳解

    這篇文章主要介紹了Spring AOP的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07

最新評(píng)論