下面是一 些靜態工廠方法的常用名稱。以下清單並非完整:
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);
總之,靜態工廠方法和公共構造方法都有它們的用途,並且瞭解它們的相對優點是值得的。通常,靜態工廠更可
取,因此避免在沒有考慮靜態工廠的情況下提供公共構造方法。