使用靜態工廠方法替代構造方法

下面是一 些靜態工廠方法的常用名稱。以下清單並非完整:

from——A 類型轉換方法,它接受單個參數並返回此類型的相應實例,例如:Date d = Date.from(instant);of——一個聚合方法,接受多個參數並返回該類型的實例,並把他們合併在一起,例如:Set faceCards =

EnumSet.of(JACK, QUEEN, KING);

valueOf——from to 更爲詳細的替代 方式,例如:BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE);

instance getinstance——返回一個由其參數 (如果有的話) 描述的實例,但不能說它具有相同的值,例如:

StackWalker luke = StackWalker.getInstance(options);

create newInstance——instance getInstance 類似,除了該方法保證每個調用返回一個新的實例,例如:

Object newArray = Array.newInstance(classObject, arrayLen);

getType——getInstance 類似,但是如果在工廠方法中不同的類中使用。Type 是工廠方法返回的對象類型,例

如:FileStore fs = Files.getFileStore(path);

newType——newInstance 類似,但是如果在工廠方法中不同的類中使用。Type 是工廠方法返回的對象類型,

例如:BuweredReader br = Files.newBuweredReader(path);

type—— getType newType 簡潔的替代方式,例如:List litany = Collections.list(legacyLitany);

總之,靜態工廠方法和公共構造方法都有它們的用途,並且瞭解它們的相對優點是值得的。通常,靜態工廠更可

取,因此避免在沒有考慮靜態工廠的情況下提供公共構造方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章