Data access object

Об'єкт доступу до даних (англ. data access object) (DAO) - об'єкт що надає абстрактний інтерфейс до деяких видів баз даних чи механізмів персистентності реалізуючи певні операції без розкриття деталей бази даних. Він надає відображення від програмних викликів до рівня персистентності. Така ізоляція розділює запити до даних в термінах предметної області та їх реалізацію засобами СКБД.

Цей паттерн проєктування можна застосовувати до більшості мов програмування, видів програмного забезпечення з потребою персистентності та більшості типів баз даних, але він традиційно асоціюється з застосунками Java EE та реляційними БД доступ до яких здійснюють через JDBC API що пов'язано з походженням паттерна із збірки найкращих практик Sun Microsystems.[1] ("Core J2EE Patterns") для цієї платформи.


Переваги

Перевагою використання об'єкту доступу до даних є досить просте розділення двох частин програми, які мають бути розділені: бізнес логіки, та логіки персистентності. В такому разі зміна бізнес логіки зовсім не буде впливати на роботу механізмів персистентності, а заміна схеми даних чи способу їх зберігання - не впливати на роботу бізнес логіки, якщо інтерфейс реалізований правильно.

Опис мовою Java

Нехай дано клас-сутність User

public class User{
 
    private String userName;
    private String firstName;
    private String lastName;
    private String email;
    private int age;
}

Тепер напишемо інтерфейс DAO.

public interface UserDAO {
 
    User get(String userName);
    void create(User user);
    void update(User user);
    void delete(String userName);
}

DAO не повинний прив'язуватись до моделі і визначає лише основні CRUD операції.

Див. також

Посилання

Інструменти та фреймворки

Зноски

  1. Core J2EE Patterns - Data Access Objects. Sun Microsystems Inc. 2 серпня 2007. Архів оригіналу за 9 квітня 2012. Процитовано 26 березня 2011.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.