利用構建器建立物件

2022-01-11 23:30:09 字數 867 閱讀 2523

1. 在建立類的時候,如果引數過多,我們直接使用構建起建立方法的時候會不知道具體引數代表什麼型別.比如:

user user = new user("123","123","123","123","123");

這樣不知道具體的引數代表什麼,不容易知道要建立什麼型別的user,所以我們可以直接使用構建器建立物件.

2.比如這樣:

user user = new user.builder().address("123").username("123").build();

這樣的話我們就可以直觀的知道要建立什麼欄位.具體**如下:

package

demo01;

public

class

user

public

builder password(string password)

public

builder nickname(string nickname)

public

builder address(string address)

public

builder email(string email)

public

user build()

}private

user(builder builder)

public

static

void

main(string args)

}

定義了乙個內部類,並且把建構函式private化,最後呼叫build()的方法在內部賦值.

這樣我們就可以直接使用builder建立物件.

「物件建立」模式 構建器

動機 在軟體系統中,有時候面臨著 乙個複雜物件 的建立工作,其通常由各個部分的子物件用一定的演算法構成 由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。如何應對這種變化?如何提供一種 封裝機制 來隔離出 複雜物件的各個部分 的變化,從而保持系統中的...

23種設計模式 十 物件建立之構建器

23種設計模式 二 元件協作之模板方法 23種設計模式 三 元件協作之策略模式 23種設計模式 四 元件協作之觀察者模式 23種設計模式 五 單一職責之裝飾模式 23種設計模式 六 單一職責之橋模式 23種設計模式 七 物件建立之工廠方法 23種設計模式 八 物件建立之抽象工廠 23種設計模式 九 ...

利用map動態建立C 類物件

mfc的cruntimeclass利用鍊錶實現了c 類的動態建立。但是如果專案中對動態建立的要求比較低,我們完全可以利用map實現簡單的動態建立。以下三個檔案做了乙個簡單的實現。author yejingx date 2011 12 29 file base.h ifndef base h defi...