考慮用靜態工廠方法代替構造器
**示例:當構造引數很多的時候考慮使用建造者(模式)publicstatic boolean valueof(boolean b)
**示例:
// 原始public
class nutritionfacts
}
用列舉實現單例(模式)// builder patternpublic
class nutritionfacts
public builder calories(int val)
public builder fat(int val)
public builder carbohydrate(int val)
public builder sodium(int val)
public nutritionfacts build()
} private nutritionfacts(builder builder)
}
**示例:避免建立不必要的物件public enum elvis
}
**示例:publicclass person
}
class personpublic
boolean isbabyboomer()
}
**示例:清除過時的物件引用// hideously slow program! can you spot the object creation?public
static
void main(string args)
system.out.println(sum);
}
**示例:// can you spot the "memory leak"?public
class stack
public
void push(object e)
public object pop()
/*** ensure space for at least one more element, roughly
* doubling the capacity each time the array needs to grow.
*/private
void ensurecapacity()
}
避免使用finalize()public object pop()
effective java 建立和銷毀物件
b 1.考慮靜態方法替代建構函式 b 靜態工廠方法有3個好處 b a.b 靜態工廠方法具有名字使程式碼易讀,名字不必和類名一樣具有更高靈活性。b b.b 實現singleton模式。b c.b 能返回乙個原返回型別的子類,形成面向介面程式設計的好習慣。壞處 b a.b 不能被繼承。b b.b 不夠物...
1 建立和銷毀物件
1.使用建構函式 2.使用返回物件的靜態函式 1.方法中的區域性變數 必須初始化才可以進行使用 2.類的屬性變數 可以不進行初始化 物件的reference初始化為null 基本型別變數會自動的初始化 3.變數的初始化順序 3.1首先初始化類的屬性 呼叫他們的建構函式 3.2呼叫自己的建構函式 例子...
第2章 建立和銷毀物件
優勢1 有特定的名稱 如果構造器的引數本身沒有確切地描述正被返回的物件,那麼具有適當名稱的靜態工廠方法會更容易使用。biginteer.probableprime int,random 指明返回的biginteger可能為素數,比原始的建構函式表示的更清楚。public class biginteg...