コンテンツにスキップ

Data Access Object

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Honeplus (会話 | 投稿記録) による 2014年4月8日 (火) 10:17個人設定で未設定ならUTC)時点の版 (外部リンク: リンク切れとツールへのリンクのため全て除去し、代わりにパターンの解説サイトを追加, +{{デザインパターン (ソフトウェア)}})であり、現在の版とは大きく異なる場合があります。

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日閲覧。

関連項目

外部リンク