![](/img/trans.png)
[英]Create factory from static factory method, then call static factory method on that id
[英]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.