構造方法引數可選時,用構建器(builder)

2021-09-29 07:16:55 字數 932 閱讀 5276

構造器引數有多個時要使用構建器builder

引數有多個,weight,height,log,nice多個引數,

其中weight和height引數是必須的,而log和nice引數是隨機選擇的,可以有其中乙個,也可以兩個都需要。

這是我們為了避免使用beans方法時由於執行緒不同步的因素,我們使用構建器。(builder)

在原來類的基礎上建立內部類builder,builder中的屬性和原來類cat中的屬性個數相同,然後:

1.把必須要的兩個屬性weight和height作為builder的建構函式進行返回

2.其他的可以有的引數分別建立其構造的呼叫方法,

把這兩種方式產生的屬性都返回給builder物件的屬性

在建立乙個cat builder的方法,這個方法吧builder物件返回給new cat(即使吧duilder物件的屬性給了cat物件)

這樣就實現了對cat類屬性的隨機選擇新增(可以選擇要新增的屬性)

注意cat物件 其在主方法中的呼叫方式

package builder;

public

class

catpublic builder nice

(int nice)

public builder log

(int log)

public cat builder()

}private

cat(builder builder)

}

測試類

注意cat物件 其在主方法中的呼叫方式

package builder;

public

class

test

}

遇到多個構造器引數時要考慮用構建器

重疊構造器模式可行,但是當有許多引數的時候,客戶端 會很難編寫 builder模式 不直接生成想要的物件,而是讓客戶端利用所有必要的引數呼叫構造器,得到乙個builder物件。public class nutritionfacts public builder calories int val pu...

第二條 遇到多個構造器引數時要考慮用構建器

構造方法中傳遞的引數一般是必要引數,如果乙個類,有必要的屬性,還有可選的屬性,那可用builder構造器 建立對應的類 例 類nutrition 有必要屬性servings,servings,可選屬性為calories,fat,sodium,carbohydrate public class nut...

多個構造器引數的處理方式 構建器

第一種處理方式 這個類有很多個引數 其中的servingsize和servings是必須的,其他的是可選的 我們可以採用重疊構造器 telescoping constructor 在這個模式之下,我們最少只需要提供引數個數最少的那個構造器即可,其他的引數預設為0 public class nurtr...