DAOとはなんぞや
DAOとは
Data Access Object
オブジェクトのデザインパターンの一つ
データベースやファイル、RESTful APIに対してCRUD処理を行う専門的なクラス
データアクセスオブジェクトDAOとしてカプセル化
大雑把に言うと
データベース専門のクラスを作って、
データベースはすべてDAOに任せてしまおう的なやつ
DAOはデータベーススペシャリストマンに違いない!
メリット
データアクセスの手段や実装が変更されても、DAO自体がビジネスロジックに公開しているインターフェースに変わりはないので、ビジネスロジックに変更が発生しない。
=> 変更に強い!
データベースの詳細を開示することなく、特定の操作を提供する。
=> ビジネスロジックとデータ操作を分離できる!
参考
http://e-words.jp/w/DAO-2.html
https://ts0818.hatenablog.com/entry/2017/07/10/223553
https://techacademy.jp/magazine/19443
https://www.nulab.co.jp/designPatterns/designPatterns3/designPatterns3-4.html