DAOパターンに関する多くの情報を調べて、その要点を理解しました。しかし、ほとんどの説明が全体像を伝えているわけではないように感じます。つまり、実際にDAOをどこで使用するのでしょうか。たとえば、Userクラスとそれに対応するUserDAOがあり、ユーザーを保存および復元できる場合、これは正しい方法です。
コントローラはUserオブジェクトを作成し、それをUserDAOに渡してデータベースに保存します
コントローラはUserオブジェクトを作成し、そのコンストラクタでuserオブジェクトは自分自身をデータベースに保存するためにuserDAOを呼び出します。
これはコードの臭いであり、コントローラーがユーザーの作成を要求する追加のクラス「UserManager」がありません。UserManagerは、ユーザーを作成し、UserDAOに保存するように依頼する責任があります。
コントローラが担当するのはリクエストを正しいモデルオブジェクトに委任することだけなので、3番目のオプションが最適だと本当に感じています。あなたの好きな方法は何ですか?私はここで何かが欠けていますか?