Методы и аргументы объектов доступа к данным - PullRequest
2 голосов
/ 04 ноября 2011

Для объекта доступа к данным, какие существуют методы и аргументы?Будет ли типичный DAO выглядеть так:

DAO<T>
+ select(): List<T>
+ selectOne(id: int): T
+ insert(obj: T): boolean
+ update(obj: T): boolean
+ delete(obj: T): boolean

Если так, то почему бы просто не получить мои Entity / Domain Objects наследовать от этого класса?Тогда мне не придется передавать объекты в этот класс.Также в настоящее время этот класс, похоже, будет содержать много похожего кода?Я полагаю, что мое понимание DAO не так?Я больше знаком с ОРМ

1 Ответ

1 голос
/ 04 ноября 2011

Действительно, типичные DAO очень похожи на то, что вы описываете, и есть библиотеки, которые помогают вам избегать создания похожих методов, отличающихся только типом (если вы реализуете DAO с помощью ORM, ищите genericDAOs ).

Такие фреймворки, как, например, Spring-Data-JPA, позволяют сосредоточиться на необычных методах запроса объектов по другим критериям.

findByName(String: name): List

findByDay (Date: d1, Date d1): List

Перемещение этих методов к объектам сущности - это шаблон, который предпочитают некоторые люди, но именновозможность определять общий DAO и наследовать от него была бы причиной оставить эти методы в разных классах.

Итак, я не ошибаюсь, что вы не правы в своем понимании DAO.

...