2

さかのぼる 12 月に、「[単純なオブジェクトに] 具象型を使用しても問題ない」という回答が寄せられたこの投稿がありました。

しかし、サンプル プロジェクトではインターフェイスを備えた単純なエンティティがますます増えており、制御したばかりの非常に大規模なエンタープライズ アプリケーション (89 個のインターフェイスを数えている) も見られます。

人々が最善のアプローチを選択しておらず、「私のプロジェクトは疎結合です!」と言ってプロジェクトを散発的にやっているだけなのでしょうか? アプローチ?

または、何か不足していますか。IService、IFactory、および IRepository 実装の具体的な型を使用して単体テストを実行できます (そして、非常にうまく機能します)。また、メイン ドメインから離れてこれらのサード パーティ ツールの多くを抽象化するための最初の「Anticorruption Layer」を構築しています。この腐敗防止レイヤーには、多くのファサード、トランスレーター、およびアダプターがあり、これらはすべて疎結合されています (または結合される予定です)。

それで、インターフェースを持つエンティティについて私が見逃しているものはありますか?

public interface IContent
{
  Int32 ContentID {get; set;}
}

IList<IContent> list = new List();

編集:これらのインターフェースをすべて備えた私が持っているエンタープライズアプリには、単体テストがないことにも言及する必要があります。笑

4

1 に答える 1

3

単純なデータ オブジェクトよりも、責任を持つエンティティがインターフェイスに準拠することが重要です。メソッドの観点からエンティティを定義できる場合は、はい、インターフェイスの恩恵を受けます。アプリケーション内で単に DTO として使用されるオブジェクトが、インターフェイスを持つことで大きな利点を得られるとは思えません。

そうは言っても、私の意見では、サードパーティのツールまたは L2S のようなフレームワークによって作成された「エンティティ」を抽象化することには確かに利点があります。

于 2009-04-09T16:24:45.017 に答える