DAO、DAL、ドメイン駆動設計などのコンセプトは初めてです。最後に、パーシスタンスレイヤー(mysqlデータベース)を、Webアプリケーションのビジネスオブジェクトおよびロジックから切り離したいと考えています。DAOのコンセプトは気に入りましたが、他のエンティティが関連付けられているデータベースからビジネスオブジェクトを作成しようとすると、DAOの実装に行き詰まりました(dbテーブルの外部キーで表されます)。
- これらの参照(集計)はDAOパターンを使用してどのように処理されますか?すべてのオンラインDAOの例は単純で、(他のエンティティや値オブジェクトを参照せずに)値オブジェクトのようなビジネスオブジェクトのみの作成を示しています。依存性注入を使用して行われますか?そうであれば、依存関係はどこに作成されますか?
- さらに読むことで、DDDからのリポジトリパターンは、バックグラウンドでDAOを使用し、オブジェクトの集約を処理する可能性を与えると思います。私が理解しているように、それはいわゆるルート(すべての参照がロードされたエンティティまたはレイジーロードされたエンティティ)を外界に提供するだけです。DAOの使用時にリポジトリは推奨されますか、それともDAO自体がビジネスオブジェクトに対する永続性の無知を維持することによってこの機能を提供できますか?
私はORMツールを使用しておらず、これらの基本的なパターンを直接探求したくはありません。