2

私は長年プログラミングをしてきましたが、最近はドメイン駆動設計のアイデアのいくつかを適用しようとしていますが、それでもシステムの特定の部分に適切な名前を付けるのに苦労しています。

これが1つの例です。

「コンピューター」オブジェクトを返すWCFWebサービスがあります。オブジェクトは、子エンティティを含む集約ルートです。

子エンティティは、2つの異なるデータベースとActiveDirectoryからロードされます。

現在、エンティティ「ComputerAssetRepository」、「DeploymentRepository」、「DirectoryRepository」などごとに個別のリポジトリクラスがあり、次に各子リポジトリを呼び出して結果を「Computer」集約ルートエンティティに返す「ComputerRepository」があります。

私はおそらく「ComputerRepository」を1つだけ持つべきであり、他のクラスはさまざまなソースからのデータアクセスのみを担当します。それらは共通のリポジトリ関数FindById/Add / Remove/Containsなどを必要とするので私はそれらをリポジトリと呼びます。

これらのクラスのより良い名前はありますか?

4

1 に答える 1

1

正しい答えはComputerAsset、 、DeploymentDirectory、および他の同様の子エンティティが、同じようにグローバルにアクセス可能な集合体であるかどうかにかかっていると思いますComputer

いずれにせよ、それらは独自のリポジトリを持つに値すると思いますし、今のところ適切な名前が付けられていると思います。DDD の意味での「リポジトリ」は、単に、既存のオブジェクトを操作するトラバーサル メカニズムを指します (ファクトリは新しいオブジェクトの作成を処理します)。ただし、グローバルにアクセスできるようにするつもりがない場合は、それらのリポジトリを の内部に作成してComputerRepositoryください。

于 2009-08-25T13:02:24.670 に答える