3

非常に一般的な静的メソッドを含む静的な「ユーティリティ」クラスの大規模なコレクションがあります。たとえば、次のような便利なメソッドを持つ CollectionUtility クラスがあります。

public static void RemoveDuplicates(ICollection コレクション)... など

C# 3.0 では、これらを拡張メソッドに変換しています。

さて、「エンタープライズ レベル」のアプリケーションでは、これらの静的クラスとメソッドの大きなライブラリを避けることがベスト プラクティスと見なされることが多いという話を聞いたことがあります。維持するのはかなり難しいと思います。

大企業の大規模なエンタープライズ プロジェクトに取り組んでいる方への質問です。このようなユーティリティ クラスのライブラリを維持していますか? あなたは何を?

4

4 に答える 4

1

あなたは共有ライブラリのものになるコードについて話している. 静的メソッドは、共有ライブラリに配置されます。System.Linq.Enumerable を確認してください

次のガイドラインに従います。

  • これらはデフォルトでは静的メソッドではありません。それらは自然にステートレスであるため、静的メソッドのみにする必要があります (動作はパラメーターにのみ依存します)。それらが自然にステートレスでない場合は、その状態を管理するための適切なクラスを作成する必要があります。
  • これらを単体テストでカバーします。他に何も単体テストしない場合は、これらを単体テストします。これは非常に簡単に行うことができます。これが簡単でない場合、これは正しくありません。

依存性注入が好きな場合は、引き続き使用できます。静的メソッドに依存するコードは、代わりに Func(T, U) またはその静的メソッドを参照する Action を呼び出すことができます。

于 2008-10-09T03:16:22.140 に答える
0

絶対違う。ユーティリティ モジュールは、時間の経過とともに、粗雑なコードの大規模なコレクションに変わります。

于 2008-10-08T22:41:53.177 に答える
0

通常、構成や定数などはシングルトンまたは静的クラスにのみ配置します。これは、決して変更されず、「グローバル」である可能性があるためです。

于 2008-10-08T22:43:57.510 に答える
0

「エンタープライズ レベル」のアプリケーションでは、これらの静的クラスとメソッドの大きなライブラリを避けることがベスト プラクティスと見なされることが多いという話を聞いたことがあります。維持するのはかなり難しいと思います。

私見では、ユーティリティメソッド/ライブラリのサイズを削減するためにジェネリックなどを適用する必要があります.1つの場所でのみユーティリティメソッドを使用する場合、共有ライブラリには属しませんが、結局のところあなたはまだかなりたくさん持っている可能性があります。

とにかく、これは私を困惑させます。それらを共有ライブラリに入れなかった場合、どこに置きますか? 各プロジェクトにコピー/貼り付けするか、そのようなものですか?

于 2008-10-09T03:38:25.560 に答える