1. ホーム
  2. c#

Utilities」クラスが邪道なら、ジェネリックコードはどこに置けばいい?[クローズド]。

2023-12-13 13:21:41

質問

私は一般的に、グローバル変数/関数は悪であり、コードのすべての部分がそれに関連するクラスの中で生きるべきだというルールに従って生きています。

これは非常に簡単なルールで、今までこのルールで問題にぶつかったことはないと思っています。

しかし今日、私はある機能を私の アセンブリ に関数を追加する必要があります。 つまり、私のほとんどすべてのクラスが はこの特定の関数を使うことができるのです。

この関数(+1 オーバーロード)はどこに置くべきでしょうか?

もし私がそれを "Utilities" クラスに置くならば、私は汚れた感じがします。 もし私がそれを準関連クラスに貼り付けて、他のクラスがそれを直接呼び出すようにしたら、私はもっと悪い気がします。

この特定のコード片は基本的に IList<PointF> を正規化したリストに変換しています。 私は今、これを IList<PointF> の拡張メソッドとして追加することが最善の策かもしれません...

どのように解決するのですか?

の操作である場合、これは IList<PointF> に対する操作であるなら、それは IList<PointF> .

一般的に UtilsHelper 型クラスは避けるべきです。多くの場合、あなたが持っている を考える が、実はかなり特殊なメソッドであり、おそらくそれ自身のクラスに属するものであることがわかります(あなたが言うように)。しかし、ドメイン固有のケースとして Util -のようなクラス (関連する有用なメソッドをグループ化するクラス) が有効なエンティティであるドメイン固有のケースがあります。