1

nTier アーキテクチャを六角形のアーキテクチャに移行しています。現在、私のドメインは明確に定義されており、すべてのインフラストラクチャの依存関係に対するインターフェイスがあります。データベース リポジトリを見ると、複数のデータベースがあり、インフラ側に各リポジトリを実装する 1 つのクラスがあります。私の質問は、DB の依存関係に関する正しいアプローチとは何かについてです。

1- ドメイン側にデータ アクセスを処理する 1 つのインターフェイスを用意し、インフラストラクチャの実装に依存して、すべてのリポジトリの実装が呼び出される場所から、ファサードのように、すべてのデータベース リポジトリのエントリ ポイントとして 1 つのクラスを用意します。このアプローチは、nTier アプリケーションで既に使用しているものと同じです。ファサードとリポジトリは現在のデータベース レイヤーです。

2-ドメイン側で必要な各データベースのインターフェースを用意します。各インターフェイスは、対応する DB にアクセスするためにインフラ側に実装されます。レイヤーを薄く保ちますが、このアプローチはデータ管理ロジックをドメインに追加します。ドメインはデータの場所を気にする必要はなく、インフラがこれを処理する必要があります。一部のデータを別のデータベースに移動する場合、対応するインターフェースをドメイン側で変更する必要があります (たとえば、このデータを公開するメソッドを別のインターフェースに移動するため)。

お知らせ下さい、

4

1 に答える 1