Data Access Object
DAOを利用する際の利点は、アプリケーションの重要な2つの部分間の比較的単純で厳密な分離を可能にする点であり、それによって各部が互いのことをほとんど知らなくて済むようにし、独立に修正可能となる。ビジネスロジックの変化は、インタフェースが正しく実装される限り、DAOクライアントに影響しない。
Javaに関しては、Data Access Objectは数々の複雑で多様なJava 永続性技術(JDBC、JDO、EJB CMP、TopLink、Hibernate、iBATISなど)からアプリケーション本体を隔離するのに利用される。Data Access Objectを使うと、基盤となる技術を更新/置換しても、アプリケーションの他の部分を変更する必要がない。