java 的builder模式 設計思想

2021-07-03 01:29:52 字數 1155 閱讀 7142

如果類的構造器或者靜態工廠中具有多個引數,設計這種類時,builder模式就是不錯的選擇。

具體做法:

不直接生成想要的物件,而是讓客戶端利用所有必要的引數呼叫構造器,得到乙個builder物件。然後客戶端在builder物件上呼叫類似於setter的方法,來設定每乙個相關的可選引數。最後,客戶端呼叫無參的bulid方法來生成不可變的物件。

例子:public class nutritionfacts{

private fianl int servingsize;

private final int servings;

private final int calories;

private final int sodium

public static  class builder{

private final int servingsize;

private final int serving;

private int calories =0;

private sodium =0;

public builder( int  servingsize,int serving){

this.servingsize=servingsize;

this.serving =serving;

public builder calories(int val){

calories=val;

public builder sodium (int val){

sodium=val;

public  nutritionfacts build(){

return new nutrionfacts(this);

private nutritionfacts(builder builder){

servingsize =builder.servingsize;

serving =builder.serving;

calories =builder.calories

sodium =builder.sodium;

答案是:nurtionfacts cola =new nutrionfacts.builder(240.8).calories(100).soidum(35).build();

這裡不贅述了。

Java設計模式 Builder模式

之前想多寫一些關於設計模式之類的東西,但是一直沒寫,主要是現在網上寫這些的太多了,都懶的弄,反正我寫這篇是寫給自己做筆記的,我自己看,哼。設計模式真的太重要了,不論是以後轉學哪門語言,物件導向思想在這了,架構搭起來就會清晰些。動手 以前我們給model賦值的時候是這個樣子的 person perso...

java設計模式 Builder設計模式

在學習builder設計模式的時候 發現 這個builder 和 工廠設計模式十分相似 我甚至說不出來他們之間有著什麼樣的區別,但可以肯定的是 如果我們需要產生乙個複雜的物件,這個物件中包含多個其他的物件,以及屬性等 那麼我們應該使用builder 模式 builder模式減少了 物件部件之間的耦合...

java設計模式 Builder設計模式

在學習builder設計模式的時候 發現 這個builder 和 工廠設計模式十分相似 我甚至說不出來他們之間有著什麼樣的區別,但可以肯定的是 如果我們需要產生乙個複雜的物件,這個物件中包含多個其他的物件,以及屬性等 那麼我們應該使用builder 模式 builder模式減少了 物件部件之間的耦合...