2017-10-03 25 views
4

私はクリーンコードによってR.Cを読みました。 Martinと私は、クリーンコードについての提案を可能な限り広く採用しようとしています。クリーンコード - 関連クラスの名前付け

しかし、私は関連するクラスに名前を付ける方法がわかりません。

私はTreeDirectoryListという名前のクラスを持っているとしましょう。

私はこのクラスの実装を多くの小さなクラスに分割したいと考えています。 ParentIndexStackという名前のクラスを作成します。

ParentIndexStackは、TreeDirectoryListに非常に依存する機能を実装します。したがって、このParentIndexStackの実装が他のどのクラスでも便利になる可能性は非常に低いです。

しかし、ParentIndexStackの名前は非常に一般的です。同じプロジェクト内で同じ名前の別のクラスが必要になる可能性があります。

だから、私はTDLParentIndexStack(接頭辞TDLはTreeDirectoryListからである)のように、ParentIndexStackは、より正確なに名前を付けましょうと思いました。

正しいことがありますか?

私はTDLxxxxxで始まる多くのクラスで終わります。

+0

本当にTreeDirectoryList以外のアプリケーションを持たないParentIndexStackクラスを作成する必要がある場合は、private/protectedネストされたクラス – PaulF

答えて

5

1つのオプションは、そのクラスのセットを独自の名前空間に入れることです。次に、名前空間コンテキストを通してクラスの完全な意味を伝えるシンプルで簡潔な名前を付けることができます。

+2

+1として作成できます。 .NETフレームワークであっても、同じ名前のクラスを見ることは無意味ではありません。彼らが別の名前空間にいる限り、... – benichka

+0

これは、VBが私がC#がコピーすることを望むものの1つを思い出させます: "相対"ネームスペースをインポートする能力。だから私のソリューションに2つのライブラリがあり、どちらも 'Company.ProductBrand.Library.Class'のようなパターンを持つ' MyClass'という名前のクラスを持っていれば、基本的な 'Company.ProductBrand'ネームスペースをインポートして' Library1.MyClass'と言うことができます。 'Company.ProductBrand.Library1.MyClass'や別名を区別するのではなく、' Library2.MyClass'を指定してください。 –

関連する問題