HackerQuest

No app, no life

趣味と実益を兼ねてプログラマをやっている者👨‍💻

DAOとはなんぞや

DAOとは

Data Access Object

オブジェクトのデザインパターンの一つ

データベースやファイル、RESTful APIに対してCRUD処理を行う専門的なクラス

ほとんどがRDBMSへの接続、切断、SQLの発行

データアクセスオブジェクト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

Ryo Tsuzukihashi