如果類的構造器或者靜態工廠中具有多個引數,設計這種類時,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模式減少了 物件部件之間的耦合...