国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計模式-構(gòu)建者(Builder)模式詳解

這篇具有很好參考價值的文章主要介紹了設(shè)計模式-構(gòu)建者(Builder)模式詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

在創(chuàng)建一個對象的時候,你是否是醬紫寫:

Student();
Student(String name);
Student(String name,int age);
Student(String name,int age,String address);
Student(String name,int age,String address,String id);

上面的寫法雖然效率高,但也有一些不足,對于代碼后期維護和協(xié)同開發(fā)會是一件很痛苦的事情。

再看看別人是醬紫寫的:

Student stu = new Student.Builder("小明")
                         .setAge(22)
					     .setAddress("青島")
  					     .build();
System.out.println(stu);

?是不是很優(yōu)雅,而且在很多框架中也能看到這樣寫的身影。沒錯這就是接下來要講的構(gòu)建者模式,這樣好處是易于擴展和類的使用,但同時也失去了一些效率。

二、構(gòu)建者模式

構(gòu)建者模式實例代碼也沒啥好講的,大家記住,照著寫就行,代碼如下:

public class Student {
    private final String name;
    private int age;
    private String address;

    private Student(Builder builder) {
        this.name = builder.name;
        this.age = builder.age;
        this.address = builder.address;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }
    public static class Builder {
    	//假設(shè)名字是必傳,并且不會變,我們設(shè)置成final
        private final  String name ; 
        private int age ;
        private String address ;

        //對象中如果有必傳參數(shù),應(yīng)該寫在這個地方。
        public Builder(String name) {
            this.name = name;
        }

        public Builder setAge(int age) {
            this.age = age;
            return this;
        }

        public Builder setAddress(String address) {
            this.address = address;
            return this;
        }

        public Student build() {
            return new Student(this);
        }
       }
    }

使用方法如下:

Student student = new Student.Builder("小明") // 這個地方要傳的參數(shù)往往都是必傳數(shù)。
                             .setAge(12)
						     .setAddress("青島")
					         .build();

注意

Builder內(nèi)部類中的屬性要和Student中的相同。
如果Student中屬性有final修飾,Builder對應(yīng)的屬性也需要用final修飾。
并且內(nèi)部類中構(gòu)造方法,傳入必傳屬性

結(jié)尾

是不是看上去逼格瞬間上去了,非必傳屬性可以根據(jù)需要任意設(shè)置,非常靈活,而且這樣先設(shè)置屬性再創(chuàng)建對象,最終獲取的對象一定是你預(yù)期的完整對象,不會像用之前set的方法創(chuàng)建的對象可能還沒有設(shè)置完全。文章來源地址http://www.zghlxwxcb.cn/news/detail-508537.html

到了這里,關(guān)于設(shè)計模式-構(gòu)建者(Builder)模式詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java設(shè)計模式-前言

    Java設(shè)計模式-前言

    ?館長準備了很多學習資料,其中包含 java方面,jvm調(diào)優(yōu),spring / spring boot /spring cloud ,微服務(wù),分布式,前端,js書籍資料,視頻資料,以及各類常用軟件工具,破解工具? 等資源。請關(guān)注“IT技術(shù)館”公眾號,進行關(guān)注,館長會每天更新資源和更新技術(shù)文章等。請大家多多關(guān)

    2024年01月21日
    瀏覽(23)
  • 設(shè)計模式——建造者模式(Builder Pattern)

    設(shè)計模式——建造者模式(Builder Pattern)

    概述 ?????? 建造者模式是較為復(fù)雜的創(chuàng)建型模式,它將客戶端與包含多個組成部分(或部件)的復(fù)雜對象的創(chuàng)建過程分離,客戶端無須知道復(fù)雜對象的內(nèi)部組成部分與裝配方式,只需要知道所需建造者的類型即可。它關(guān)注如何一步一步創(chuàng)建一個的復(fù)雜對象,不同的具體建

    2024年01月20日
    瀏覽(22)
  • 設(shè)計模式--建造者模式(Builder Pattern)

    設(shè)計模式--建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一種創(chuàng)建型設(shè)計模式,它關(guān)注如何按照一定的步驟和規(guī)則創(chuàng)建復(fù)雜對象。建造者模式的主要目的是將一個復(fù)雜對象的構(gòu)建過程與其表示分離,從而使同樣的構(gòu)建過程可以創(chuàng)建不同的表示。 在建造者模式中,通常有以下幾個核心角色: 產(chǎn)品(Prod

    2024年02月11日
    瀏覽(18)
  • 設(shè)計模式|建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一種創(chuàng)建型設(shè)計模式,用于將一個復(fù)雜對象的構(gòu)建過程與其表示分離,以便可以使用相同的構(gòu)建過程創(chuàng)建不同的表示。 Builder(建造者)接口或抽象類 : 定義了構(gòu)建對象的各個步驟的方法。 ConcreteBuilder(具體建造者)類 : 實現(xiàn)了 Builder 接口或繼

    2024年04月15日
    瀏覽(40)
  • 設(shè)計模式五:建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一種創(chuàng)建型設(shè)計模式,用于通過一系列步驟來構(gòu)建復(fù)雜對象。它將對象的構(gòu)建過程與其表示分離,從而允許相同的構(gòu)建過程可以創(chuàng)建不同的表示。 建造者模式中的幾個角色: 產(chǎn)品(Product):表示被構(gòu)建的復(fù)雜對象。 抽象建造者(Builder):定義了構(gòu)建復(fù)

    2024年02月15日
    瀏覽(27)
  • 【Java設(shè)計模式】建造者模式 & 注解@Builder

    【Java設(shè)計模式】建造者模式 & 注解@Builder

    將一個復(fù)雜對象的構(gòu)造與它的表示分離 ,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示。它使將一個復(fù)雜的對象分解成多個簡單的對象,然后一步步構(gòu)建而成。 每一個具體建造者都相對獨立,而與其它的具體建造者無關(guān),因此可以很方便地替換具體建造者或增加新的具體建造者,

    2024年02月14日
    瀏覽(19)
  • C++設(shè)計模式-生成器(Builder)

    C++設(shè)計模式-生成器(Builder)

    目錄 C++設(shè)計模式-生成器(Builder) 一、意圖 二、適用性 三、結(jié)構(gòu) 四、參與者 五、代碼 將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。 當創(chuàng)建復(fù)雜對象的算法應(yīng)該獨立于該對象的組成部分以及它們的裝配方式時。 當構(gòu)造過程必須允許被

    2024年02月07日
    瀏覽(20)
  • 【設(shè)計模式】23種設(shè)計模式——建造者模式Builder(原理講解+應(yīng)用場景介紹+案例介紹+Java代碼實現(xiàn))

    【設(shè)計模式】23種設(shè)計模式——建造者模式Builder(原理講解+應(yīng)用場景介紹+案例介紹+Java代碼實現(xiàn))

    建造者模式又叫生成器模式,是一種對象構(gòu)建模式。它可以將復(fù)雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現(xiàn)方法可以構(gòu)造出不同屬性的對象 建造者模式是一步一步創(chuàng)建一個復(fù)雜的對象,它允許用戶只通過指定復(fù)雜對象的類型和內(nèi)容就可以構(gòu)建它們,不

    2024年02月16日
    瀏覽(25)
  • 【設(shè)計模式——學習筆記】23種設(shè)計模式——建造者模式Builder(原理講解+應(yīng)用場景介紹+案例介紹+Java代碼實現(xiàn))

    【設(shè)計模式——學習筆記】23種設(shè)計模式——建造者模式Builder(原理講解+應(yīng)用場景介紹+案例介紹+Java代碼實現(xiàn))

    建造者模式又叫生成器模式,是一種對象構(gòu)建模式。它可以將復(fù)雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現(xiàn)方法可以構(gòu)造出不同屬性的對象 建造者模式是一步一步創(chuàng)建一個復(fù)雜的對象,它允許用戶只通過指定復(fù)雜對象的類型和內(nèi)容就可以構(gòu)建它們,不

    2024年02月15日
    瀏覽(26)
  • 生成器設(shè)計模式(Builder Design Pattern)[論點:概念、圖示、示例、框架中的應(yīng)用、場景]

    生成器設(shè)計模式(Builder Design Pattern)[論點:概念、圖示、示例、框架中的應(yīng)用、場景]

    ??????? 生成器設(shè)計模式(Builder Design Pattern)是一種創(chuàng)建型設(shè)計模式,用于處理具有多個屬性和復(fù)雜構(gòu)造過程的對象。生成器模式通過將對象的構(gòu)建過程與其表示分離,使得相同的構(gòu)建過程可以創(chuàng)建不同的表示。這有助于減少構(gòu)造函數(shù)的參數(shù)個數(shù),提高代碼的可讀性和可維

    2023年04月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包