簡體   English   中英

工廠方法,為什么我們使用靜態調用從工廠獲取對象

[英]Factory method, why we use a static call to get the object from factory

到目前為止,我的理解是使用工廠方法,我們通過調用工廠的靜態方法來獲取對象..就像Foo f = Factory.getObj() ..方法是靜態的,因為我們不需要創建一個在調用getObj方法之前的對象,該方法實際上將返回我想要的具體對象。 但是為什么使用new Factory()然后調用req getObj方法創建Factory類的實例並不常見? 對不起,如果這聽起來很愚蠢,但為什么將工廠方法設為靜態是很常見的?

靜電廠和工廠也是兩回事嗎?

你必須問自己:

Factory類的不同對象會有不同的表現嗎? 在這種情況下,他們會以不同的方式創建新對象嗎?

答案是否定的 如果方法不是對象作用域 ,則它是static的完美候選者。

您應該閱讀Effective Java Item 1: Consider static factory methods instead of constructors 那里有詳細的解釋。 此外,經典的工廠方法設計模式http://en.wikipedia.org/wiki/Factory_method_pattern不是靜態的。 所以它可以兩種方式使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM