2012-08-26 108 views
0

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

+2

你可以粘貼一些具體的代碼來演示嗎? – oldrinb

回答

1

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

另一個,考慮的很重要的一點是初始化對象:有一些初始化模式,而對象是正在建設的是隻是沒有安全完成。例如,調用任何可重寫的方法。這些案例也被工廠模式優雅地解決。

我個人想說的第三個好處,但是這可能是有爭議的一些:我更喜歡沒有new編寫代碼。例如,而不是new OidableBinding(vb)我喜歡寫oidableBinding(vb)。這是通過靜態導入實現的。所以旁註:不會將您的工廠方法的名稱getInstance或類似名稱。將其命名爲與類型名稱類似,以便在靜態導入時該方法看起來不錯(並且不會與其他卑微命名的工廠方法產生名稱衝突)。

0

我認爲如果您現有的工廠正在提供相關對象,那麼您可能需要創建另一個工廠。即使您的工廠僅創建一種類型的對象,我認爲它也很好。