2011-01-25 26 views
4

假設我有一個需要使用二叉搜索樹數據結構的Visual Studio項目。由於.NET沒有內置的BST數據結構,我將不得不自己添加這些類(例如從this article)。這將涉及幾個類:Node,NodeList,BinaryTree等....所以我的問題是將所有這些類添加到一個.cs文件,即嵌套它們,還是應該每個類是它自己的單獨文件更好?它看起來更清潔一些,如果它們都集中在一個文件中,可能更容易重用這些類,否?如何組織C Sharp應用程序中的類?

我只是想了解組織和設計項目的最佳實踐。任何意見或方向,你可以指向我將不勝感激。

回答

2

我推薦每種類型使用一個文件。沒有經濟限制文件的數量,每種類型的文件都有助於在解決方案中找到類型。

很多時候,文件被組織在文件夾中以幫助組織級別(文件夾通常按命名空間行命名,因爲這些文件提供了類型的自然分組),但這並不總是完成。

+4

每個文件1類型規則還有助於防止多個開發人員在處理項目時發生更改衝突。我們討厭在源頭控制中解決衝突。 – 2011-01-25 20:05:58

+0

@尼古拉斯:沒錯。 – 2011-01-25 22:02:04

0

我會在名爲BinarySearch的項目下創建一個文件夾,並將它們放在那裏。

3

使用二叉樹的最簡單方法是下載並引用C5 Collections Library。爲什麼重新發明輪子?

這就是說,一般的規則是每個源文件1個widget --class/enum/struct/whatever。一個好的實踐(YMMV)是[通常]讓文件系統層次體現名稱空間層次結構,程序集應該被命名以反映它們包含的名稱空間。

1

我會推薦使用一些內置結構。我懷疑你真的需要二叉樹。

如果你編寫自己的類,那麼每個類通常應該在它自己的文件中。只要你不需要在外部使用它們,就使用內部類。 (使它們成爲私有的。)內部類通常在與外部類相同的文件中定義。

0

我認爲把多個類放到一個文件中通常會使項目變得笨拙。沒有性能優勢。如果有大量可以分組的類,可以使用目錄結構來完成。

1

像Jeff Yates一樣,我會爲每種類型使用一個文件。 Java強制這一點,.NET沒有 - 但這似乎是組織良好的解決方案。

此外,我會將所有BST相關文件放在一個單獨的項目在同一解決方案。如果我的理解正確,你的申請不是 BST的,它只是使用他們吧?如果是這樣的話,一個分開的項目就是要走的路。

並且做出命名清晰的命名空間。例如,與用於BST相關文件的MyApplication.Bst和用於前端的MyApplication.UI相似。

相關問題