私はアプリケーションを作成し、Data Mapperパターンに従っています。お互いに依存するDataMappersを処理するにはどうすればいいですか?
2つのデータマッパーが互いに依存する状況になってしまいました。具体的には、Child
のオブジェクトを持つParent
タイプがあります。親が変更された場合、その子のリストを取得して、それを少しずつ処理する必要があります。子が変更されると、親の状態をチェックする必要があります。これは、次のように構造化されたクラスにつながります。
class ParentMapper {
ParentMapper(ChildMapper childMapper) { ... }
void save(Parent p) {
Child[] children = childMapper.list(p.getId());
}
}
class ChildMapper {
ChildMapper(ParentMapper parentMapper) { ... }
void save(Child c) {
Parent p = parentMapper.get(c.getParentId());
}
}
作成されていないクラスは作成できません。
これを処理するにはどのような方法が良いですか?私はデータマッパーパターンを使用する必要はありませんが、私はそれがきれいなクリーンな抽象であることがわかりました。
これは参考用にGuiceのJavaです。
両方のコンストラクタにパラメータを渡す代わりに、いずれかのクラスに子/親マッパを設定するメソッドを与えます。さもなければ、これのまわりに道は実際にありません。 – n247s
Guiceは、初期化中に依存関係の1つを満たすためにプロキシオブジェクトを作成し、それをスワップします。依存関係のサイクルを自動的に処理します。特定のエラーが表示されますか? – Cardano