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

2021-07-30 20:20:44 字數 1780 閱讀 9191

第一種處理方式:

/**

* * 這個類有很多個引數

* * 其中的servingsize和servings是必須的,其他的是可選的

* * 我們可以採用重疊構造器(telescoping constructor)

* * 在這個模式之下,我們最少只需要提供引數個數最少的那個構造器即可,其他的引數預設為0

* */

public class nurtritionfacts1

public nurtritionfacts1(int servingsize, int servings, int calories)

public nurtritionfacts1(int servingsize, int servings, int calories, int fat)

public nurtritionfacts1(int servingsize, int servings, int calories,

int fat, int sodium)

public nurtritionfacts1(int servingsize, int servings, int calories,

int fat, int sodium, int carbohydrate)

public int getservingsize()

public int getservings()

public int getcalories()

public int getfat()

public int getsodium()

public int getcarbohydrate()

}第二種方式:

*/

public class nurtritionfacts2

public void setservingsize(int servingsize)

public void setservings(int servings)

public void setcalories(int calories)

public void setfat(int fat)

public void setsodium(int sodium)

public void setcarbohydrate(int carbohydrate)

public int getservingsize()

public int getservings()

public int getcalories()

public int getfat()

public int getsodium()

public int getcarbohydrate()

第三種方式:
*/

public class nurtritionfacts3

public builder calories(int val)

public builder fat(int val)

public builder sodium(int val)

public builder carbohydrate(int val)

public nurtritionfacts3 build()

}private nurtritionfacts3(builder builder)

測試類**:
/**

*

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

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

伺服器丟包的處理方式

伺服器丟包的原因有多種,我們可以做簡單的排查,首先檢查看看是不是外部因素問題 頻寬原因 由於寬頻限制造成資訊堵塞。訊號不穩定 訊號接收不全 或訊號傳播不穩定都可能引起資訊殘缺。被病毒攻擊 未安裝防黑客攻擊的防火牆和必備的防毒軟體。所在機房環境的配置 如通風條件 防火條件 空調以及電壓等,這些外在因素...

在構造器引數很多的時候應該使用構建器

測試 一般帶引數的建構函式為new constructor 引數1,引數2 但是當引數為5個或者10或者更多的時候這種方式就會不太好,因為可能發生有些引數我們不需要傳遞值,但是不得不傳值的情況,這時候就要用到構建器,如下 public class nutritionfacts public buil...