Если некоторые операции в вашем приложении содержат множественные таблицы (или не содержат их вообще), а Активная запись способна работать только с одной таблицей за раз, то вы нуждаетесь в другом классе, который объединит несколько объектов доступа к базе данных вместе и использует их для составной операции.
Связь между моделью и объектом DAO, как и Активная запись, должна быть HAS-A (агрегирование), а не IS-A (наследование). Многие каркасы, полагающиеся на Активную запись, предлагают IS-A-решение. Если ваша модель использует объекты DAO, вместо наследования от класса DAO, вы можете проектировать модель так, чтобы она содержала все данные и код домена, который предположительно моделируется, — даже если для представления этого понадобится множество таблиц базы данных.
Способ сохранения моделью данных в базе данных должен являться внутренней деталью реализации. Модель домена, агрегирующая свои объекты DAO, должна отвечать за создание этих объектов.
Контроллеры и представления в вашем приложении должны использовать интерфейс модели домена, не будучи осведомленными о том, какой вид взаимодействия базы данных необходим для модели, чтобы выбирать и хранить данные. Это упрощает изменение запросов к базе данных впоследствии, в одном участке вашего приложения.
Опубликовал vovan666
August 26 2013 12:11:51 ·
1 Комментариев ·
5675 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Oleg27 October 23 2023 11:55:51
О высоких шансах на выход из группы свидетельствовали и котировки в линиях букмекеров. С актуальными промокодами букмекерских контор и условиями их получения знакомит сайт рабочее 1хбет зеркало
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.