0

私は一般的なクラスを持っています

いう

Public class Trans
{

//Access modifiers like the following 20 are there and 20 methods

 protected internal string TopVenueCd
 {
            get { return this.Ticket.GetValue("venueCd", "").TopOne().GetStringValue(); }
 }

}

このクラスを必要な場所に継承しています。しかし、私が継承しているすべてのクラスでは、すべてのメソッドは必要ありません。

したがって、それを静的クラスとして作成し、必要な場所にアクセスできます..

どちらが賢いですか?

そして、パフォーマンスのおっとの詳細がはっきりしないので、その理由を教えてください..すべての返信に感謝します..

アップデート

私の目的は、1 つのコレクション関連のプロセスをクラス内で個別に分離することです。(私はmongoDbを使用しています)頻繁に使用される1つの重要なコレクションであり、ネストされたドキュメントを持つ大きなコレクションです。

まだスキーマは固定されておらず、凍結されていません。より良い解決策を得るためにまだ取り組んでいます。

したがって、その特定のコレクションの論理操作をクラスで個別に行う場合、スキーマを変更すると、このクラスのみを変更できます。それが意図です。

C# の初心者なので、おっと、この質問が発生します..

ベストプラクティスでこの分離をうまく行う方法は?

4

2 に答える 2

2

継承は、「自分のクラスにコピーする」機能として悪用されています。これは、実際の継承状況 (is-a-relation) で使用する必要があります。

静的メソッドも機能する場合は、それを確実に使用してください。拡張メソッドを使用して、静的メソッドを見つけやすくします。

なんで?

  • 継承ははるかに高い結合であるためです。将来、インターフェイスと注入されたサービスを使用して、簡単に切り離すことはできません。
  • 多くのヘルパー クラスから静的メソッドにアクセスできますが、基本クラスは 1 つしか持てません。将来さらに多くのものが必要になった場合、基本クラスは大きくなりすぎます。常にすべてを継承するため、すべてのクラスが大きくなりすぎます。
  • 将来、実際の継承のために基本クラスが必要になった場合、クラスに別の基本クラスを与えることはできなくなります。

したがって、疑わしい場合は継承を使用しないでください。継承の非常に優れたアプリケーションはまれです。

于 2013-10-25T06:50:23.717 に答える