私は次のような状況に陥っています:良いリポジトリインタフェースを定義する方法
私はホスト上のデータを収集しています。 各ホストには、プロパティとステータスのコレクションがあります。 であり、ホストはグループにまとめられています。
各グループは固有のIDを有し、各ホストは、一意のID
を有し、すべてのグループは、単一の「リポジトリ」にまとめられています。私は現在、次のようなデータ構造を使用してい
:
public class Host {
private final Map<PropertyId, Property> properties;
private final Map<StatusId, Status> statuses;
}
public class Group {
private final Map<HostId, Host> hosts;
}
public class AllGroups {
private final Map<GroupId, Group> groups;
}
これは、現在、メモリデータ構造 で正規として実装されているが、私は、データベース内のすべてを保存する必要があります。 私が私を可能にする優れた抽象定義したい:アップデートを作成し、プロパティを削除するには、各項目
- をし、グループ を削除するには、ホスト
- を追加したり削除したりする
- をステータス
私はリポジトリパターンに関するいくつかの記事を読んで、それは適切だと思われますが、インターフェイスを正しく定義する方法を理解できません。
1つのリポジトリインタフェースが必要ですか? または、私はHostRepository、PropertyRepository StatusReporitoryのための別のインターフェイスを用意する必要があります...
"各グループには一意のIDがあり、各ホストには一意のIDがある"ので、ホストとグループのクラスに "id"フィールドが表示されます。 –
このようなもの(https://lostechies.com/jimmybogard/2009/09/03/ddd-repository-implementation-patterns/)は読む価値があります。 DDDはFowlerのパターンを取り、さらにそれにニュアンスを追加することを覚えておいてください。例えば。リポジトリを介して利用可能な集約ルートのみです。 –