2011-09-28 47 views
0

我正在創建一個類,它將負責創建和銷燬對象,將它們稱爲X,因此創建部分可以是XFactory。但是,由於創建和銷燬東西是同一類事物,並且沒有足夠的代碼讓我想要創建一個單獨的「XDestroyer」,所以您會稱之爲既創建又銷燬的類?如何命名同時創建和銷燬的類?

XFactory.destroy(x)看起來不正確。

它可能是一個XManager,但這是非常通用的,它並不意味着什麼。

其中mentionned可能性,我想我會用XFactory + XDestroyer去,但如果有人能想到一個名字是有道理的......

+1

稱它爲「XManager」並記錄下來。 – 2011-09-28 08:53:38

+1

永遠不要打電話給班級經理,這是一個過於籠統的術語,什麼都不說。 – bitbonk

+0

牧羊人? PoolManager?監工? – MattH

回答

1

如果你不能拿出一個像樣的名字,這是一個暗示,類設計可以改善。不要害怕將問題分爲多個班級。

+0

好點 - 我想對於一個班級應該多小,沒有下限。 :-) –

+0

'如果你不能拿出一個體面的名字,那麼英語可能不會成爲你的第一語言......或者那些體面的名字已經被濫用到明顯的無意義的地步。 – MattH

+0

事實上,英語不是我的第一語言......這就是爲什麼我問這個問題。 :-)另外,如果不知道自己在做什麼的人會提出你打算做的事情,但是你可能不會太離譜,所以通常會問問別人。 –

0

XGod?

說真的,爲什麼你需要一個獨特的類,它既能創建東西又能破壞它?對我來說,這是一個明顯的利益衝突,你需要兩個班。

更重要的是,爲什麼你需要一個類來銷燬對象?這應該留給你的語言使用的任何垃圾收集方法。我一直認爲,如果你需要明確銷燬對象並釋放內存和其他資源,那是因爲最初的設計決定不好。重新考慮你的對象。

+0

除了GC之外,還有很多「摧毀」物體。如何關閉數據庫連接壞設計?另外,如果將狀態存儲在ThreadLocals(Java)中,則需要在將線程返回到池之前清除它們。只是你可能想要做的很多事情中的兩個。清理!=糟糕的設計。 –

+0

恕我直言,create()和destroy()是相關的操作,關於OO的好處是可以將相關操作(及其數據)分組。我沒有看到任何地方的「利益衝突」,你能否詳細說明? (注:我已經決定使用XFactory和XDestroyer,所以這是學術性的,但對我來說沒關係:-)) –

+0

我的觀點是你應該關閉數據庫連接並在專用方法中進行所有相關的清理,而不是在「銷燬」物體。可以說,我現在。爲ThreadLocal採取的點。 – Guillaume