Data Access ObjectDAO)とは、ある種のデータベース永続性機構の抽象化されたインタフェースを提供するオブジェクトであり、データベースの詳細を開示することなく特定の操作を提供する。

なお、マイクロソフトのライブラリである Data Access Objects とは直接の関係はない。

概要編集

Data Access Object は問題を、ドメイン固有のオブジェクトとデータ型を使ってアプリケーションにどのようなデータアクセスが必要であるかという点(DAOの公開インタフェース)と、それらのニーズを特定のDBMSやデータベーススキーマでどのように満足するかという点(DAOの実装)に分離する。

このデザインパターンは多くのプログラミング言語で利用可能であり、多くの永続性を必要とするアプリケーションや多くのデータベースで利用可能である。しかし、サン・マイクロシステムズベストプラクティスガイドライン[1] ("Core J2EE Patterns") が発祥であるため、JDBC API を経由して Java EE から関係データベースにアクセスする際に適用されることが多い。

利点編集

DAOを利用する際の利点は、アプリケーションの重要な2つの部分間の比較的単純で厳密な分離を可能にする点であり、それによって各部が互いのことをほとんど知らなくて済むようにし、独立に修正可能となる。ビジネスロジックの変化は、インタフェースが正しく実装される限り、DAOクライアントに影響しない。

Java に関しては、Data Access Object は数々の複雑で多様な Java 永続性技術JDBCJDOEJB CMPTopLinkHibernateiBATISなど)からアプリケーション本体を隔離するのに利用される。Data Access Object を使うと、基盤となる技術を更新/置換しても、アプリケーションの他の部分を変更する必要がない。

脚注編集

注釈編集

出典編集

  1. ^ Core J2EE Patterns - Data Access Object”. Sun Microsystems Inc. (2002年). 2007年8月2日閲覧。

関連項目編集

外部リンク編集