第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)我們可以用 setter 做同樣的事情時(shí),為什么我們需要使用 builder 設(shè)計(jì)模式?

當(dāng)我們可以用 setter 做同樣的事情時(shí),為什么我們需要使用 builder 設(shè)計(jì)模式?

溫溫醬 2022-10-12 15:54:33
public class Employee {    private String name;    private String address;    private int id;    public Employee() {        // TODO Auto-generated constructor stub    }    @Override    public String toString() {        return "Employee [name=" + name + ", address=" + address + ", id=" + id + "]";    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }}public class Main {     public static void main(String[] args) {        Employee e = new Employee();        e.setName("Priyanka");        Employee e1 = new Employee();        e1.setName("Rahul");        e1.setAddress("Delhi");        System.out.println("Value of e :"+ e);        System.out.println("Value of e1:"+ e1);    }}
查看完整描述

3 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

構(gòu)建器模式可用于:

  • 對(duì)用于初始化對(duì)象的數(shù)據(jù)進(jìn)行一些檢查。例如,如果您需要在變量之間進(jìn)行雙重檢查

  • 創(chuàng)建不可變對(duì)象。一旦初始化就不能更改對(duì)象,因此不能使用 setter

  • 添加代碼的可讀性。

  • 減少用于初始化對(duì)象的代碼

  • 使實(shí)例處于有效狀態(tài)。在調(diào)用所有 setter 之前,使用 setter 對(duì)象實(shí)例可能處于無(wú)效狀態(tài)。


注意使用構(gòu)建器創(chuàng)建不可變對(duì)象。

當(dāng)您在多線程環(huán)境中工作時(shí),可以在線程之間共享不可變對(duì)象,而無(wú)需顯式同步。因?yàn)閷?duì)象在這段時(shí)間內(nèi)不能改變,所以不可能有競(jìng)爭(zhēng)條件同時(shí)被兩個(gè)線程訪問(wèn)和修改。


查看完整回答
反對(duì) 回復(fù) 2022-10-12
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

無(wú)需使用任何模式。您甚至可以通過(guò)公開變量來(lái)避免設(shè)置器。然而,

Builder 設(shè)計(jì)模式的目的是將復(fù)雜對(duì)象的構(gòu)造與其表示分離

來(lái)源:https ://en.wikipedia.org/wiki/Builder_pattern


查看完整回答
反對(duì) 回復(fù) 2022-10-12
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用構(gòu)建器模式有幾個(gè)優(yōu)點(diǎn):

  1. 與設(shè)置器(使您的類可變)不同,構(gòu)建器可用于構(gòu)造不可變對(duì)象。在許多情況下,不可變對(duì)象比可變對(duì)象更受歡迎,因?yàn)樗鼈兏子诶斫夂途S護(hù),并且它們避免了在多線程環(huán)境中鎖定的需要。

  2. 構(gòu)建器可以確保對(duì)象即使在構(gòu)建后直接滿足某些不變量。例如,如果您的類有一個(gè)name字段不能是null,則構(gòu)建器可以檢查此條件并在不滿足時(shí)無(wú)法構(gòu)造對(duì)象。

您也可以通過(guò)使用將所有類內(nèi)容作為參數(shù)的構(gòu)造函數(shù)來(lái)完成這兩件事,但是當(dāng)您的類有多個(gè)要初始化的字段時(shí),這將是非常不可讀的。


查看完整回答
反對(duì) 回復(fù) 2022-10-12
  • 3 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)