2012-01-14 11 views
2

私はしばしばこの種の状況を持っています。そして、それらについてのすべての記事とメタ情報を格納する別のクラスがあります。私は通常それをArticlesManagerという名前にします。しかし、私は、クラス名のManagerクラスのような言葉を使うのは悪い習慣だと読んだことがあります。 ArticleクラスがModelsの名前空間にある場合、その名前空間をどのように呼び出す必要がありますか?C#(または他の言語)でのクラスの名前付け

+0

どこを読んだのですか?名前はクラス内の実際の名前ほど重要ではありません。あなたがそのような名前を必要とするクラスを持っているなら、恐らくそれはクラス自体の設計において悪い習慣を示しているでしょうか? –

+0

'Magazine' =)や' ArticleRepository'はいかがですか –

答えて

3

どのように名前を付けて(あなたの質問で行ったように)ArticleMeta?

+0

'ArticleMeta'完璧な名前 – PresleyDias

+0

そのような手榴弾は現実を説明する10ヤード以内の最短の名前または接尾辞が一番です。これは私にGoogleの「3文字の言葉」を思い出させ、コーディング規則のために働くかもしれないものを選ぶ。 –

2

"マネージャー"と呼ばれることの大きな欠点は、クラスがそれ以降の責任を負う傾向が強く、単一責任の原則に違反し始める傾向があることです。

たとえば、記事をデータベースに保存し、 "ArticleStore"というクラスに「ArticleManager」という名前を付けることを扱うクラスを考えてみましょう。次のプログラマーが記事の翻訳を行う場所を必要とするとき、そのクラスのうちのどれが無関係なコードで終わる可能性がより高いですか?

これは何か「ArticleManager」を呼び出すという意味ではありませんノーノー、それは実際にクラスが何をするかの名前として意味を作る場合、それだけで、それは非常に一般的な名前だとに名を絞り込むしようとしていることを意味しクラスが実際にしているのは良い習慣です。

1

短く:ArticleManagerが考えることができる他の何かよりも理解力が優れている場合は、単にArticleManagerと呼んでください。

長い:まず、ソリューションを適切に設計する必要があります。その後、あなたのクラスが "ArticleManager"として最もよく記述されている場合は、gollyによってArticleManagerを呼び出します。命名規則に固執しないでください。規則は、経験則として存在し、論理的な(そして十分に考察された)理由がある場合に適合される(または無視される)ことを意味する。

私自身の例:.netでは、「99%正しい」変数を公開するはずがありません。それが正しくない時間の1%は、プロパティを使用しても裸の変数に対して測定可能なパフォーマンス上のペナルティがある場合です。

関連する問題