簡體   English   中英

對象的創建-工廠方法

[英]Creation of objects - factory method

對於小型系統,我使用工廠方法創建相關的對象(從父類繼承),這樣我可以動態創建對象而無需指定對象的類型。 我必須創建另一個沒有子類的對象,並且這些對象是用戶類的實例。 為了正確理解工廠方法模式,我不必為最后一個類創建工廠方法,對嗎?

Factory模式不僅與類型靈活性有關。 例如,即使Java已經具有new Integer(int)它也具有Integer.valueOf(int) new Integer(int) 工廠變量允許緩存Integer.valueOf(1)每次調用將返回相同的實例 這適用於所有不可變的對象。

另一個非常重要的考慮因素是對象初始化:有些初始化模式在對象正在構建時只是不安全地完成。 例如,調用任何可重寫的方法。 這些情況也可以通過Factory模式很好地解決。

我個人會爭取第三種好處,但這對某些人可能會引起爭議:我更喜歡編寫沒有new代碼。 例如,我喜歡編寫oidableBinding(vb)而不是new OidableBinding(vb) oidableBinding(vb) 這可以通過靜態導入來實現。 因此,請注意: 不要將工廠方法命名為getInstance或類似名稱。 將其命名為類似於類型名稱,以便在靜態導入時該方法看起來不錯(並且不會與其他平淡命名的工廠方法創建名稱沖突)。

我認為,如果您現有的Factory正在提供相關對象,那么您可能要創建另一個Factory。 我認為即使您的工廠僅創建一種類型的對象也可以。

暫無
暫無

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

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