2010-08-09 25 views
1

我在自己的名稱空間/庫中編寫了一個抽象基類TCPIP服務器。目前,我在解決方案的.exe項目中具有派生類(更具體的TCPIP服務器;具有DataHandler)。在基類庫或新項目中定義繼承類

我幾乎100%肯定這是我將如何去,但我的一部分想要把派生類放在基類項目。這有什麼好的理由?

回答

2

我相信YAGNI,KISSThe Rule Of Three這裏適用。如果您沒有立即計劃嘗試重用派生類,請將其保留在應用程序名稱空間中。如果您以後發現有第二個項目/應用程序可以使用類似派生類的內容,請遵循您的計劃並將其用作「模板」,以便通過剪切和粘貼來創建另一個類似的派生類。

如果您發現第三個有機會再次這樣做,那麼您可以看看是否有合理有用的子類坐在那裏。不要分心嘗試過早地發現可重用的抽象。

1

「爲什麼我需要基類庫」?

通常是因爲你想在多個項目中使用它。

如果是這種情況,您是否需要在其他項目中使用派生類?

+0

我將無法重新使用派生類對象,它在實現中將會過於具體。但是我的一部分仍然希望將它與基類一起存儲...我主要是這樣以便於稍後查找並用作(我知道這是一個糟糕的詞語選擇 - >)模板。我認爲更清潔和正確的方法是將它放在.exe命名空間中......我只是在想別人的想法。 – Jess 2010-08-09 21:06:10

0

我推崇這種方法的原因是,如果我將dervied類放在.exe命名空間中,我將可以訪問所有這些類(例如數據隊列)。但是,如果我將派生類放在基礎項目中,則必須授予對.exe名稱空間中所有類的訪問權,以便僅使用其中的一個類(使用DotExeNamespace;)。

1

如果你打算讓其他exe使用你的派生類,它有幫助,如果它在那裏,而不是在exe中。