powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / DataMapper, DomainModel - а куда другие запросы к БД?
16 сообщений из 16, страница 1 из 1
DataMapper, DomainModel - а куда другие запросы к БД?
    #37236933
Pilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас будет вопрос из школьной программы :)
Итак, разрабатывается ИС, где для работы с БД используется Data Mapper. Бизнес-логика основана на Domain Model.
Пока нам нужны стандартные операции "создать", "отредактировать", "удалить" - вопросов нет.
Но вот мне нужно получить некоторую агрегированную информацию об объектах и самый быстрый способ это сделать - простой запрос в БД. А как это все ляжет на вышеописанную архитектуру?


Пример, чтобы было понятнее (пример вымышлен)
Допустим есть:
1) класс Book - информация о книге - название, автор, количество страниц
2) класс BookMapper - маппер. содержит методы типа find(), save(), delete().

Теперь задача: узнать максимальное количество страниц в книгах.
Для этого нужно послать запрос в БД "select max(количество_страниц) from книги".
Но как это оформить? Дополнительный метод в маппере? Но вроде как это не его предназначение. Метод в классе Book? Тогда мы завязываемся на маппер, а по идее модель не должна ничего знать о БД.
Так как быть?

З.Ы. Или мне предлагается загрузить все книги маппером в оперативную память, а потом пробежаться по ним в цикле и найти максимум? :)
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37237022
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Pilot Но как это оформить? Дополнительный метод в маппере? Но вроде как это не его предназначение.
Подмеченно очень точно. Назначение Mapper'a соверешенно в другом - преобразовать один объект в другой. В обычной школьной программе для CRUD применяют другой шаблон - Repository. В нем и прописывают все дополнительные методы, что многие считают большим недостатком данного подхода, тк невозможно сделать обобщенное решение
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242773
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PilotНо вот мне нужно получить некоторую агрегированную информацию об объектах и самый быстрый способ это сделать - простой запрос в БД. А как это все ляжет на вышеописанную архитектуру?
Сделать класс-обертку, которая проксить результат этого запроса. Некторые ORM могут сами кодогенерировать прокси-классы от производных хранимых процедур и функций, это очень удобно.

Pilot1) класс Book - информация о книге - название, автор, количество страниц
2) класс BookMapper - маппер. содержит методы типа find(), save(), delete().
Как уже посоветовали - репозиторий. Как вариант, некоторые ORM по умолчанию кодогенерят свои репозитории для своих сущностей.

PilotТеперь задача: узнать максимальное количество страниц в книгах.
Для этого нужно послать запрос в БД "select max(количество_страниц) from книги".
Но как это оформить? Дополнительный метод в маппере? Но вроде как это не его предназначение. Метод в классе Book? Тогда мы завязываемся на маппер, а по идее модель не должна ничего знать о БД.
Так как быть?
Не изобретать велосипед, а юзать готовые ORM.
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242820
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
MCУ, ты бы сам велосипеды не изобретал, давно пора хотя бы один букварь по паттернам осилить. Где ты прокси-классы в ORM нашел?
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242826
Kew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему нельзя ввести понятие "Коллекция книг" или вообще "Универсум книг" и наделить его необходимыми свойствами? В т.ч., методами получения агрегатов, списков и отдельных элементов, например.
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242841
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
KewА почему нельзя ввести понятие "Коллекция книг" или вообще "Универсум книг" и наделить его необходимыми свойствами? В т.ч., методами получения агрегатов, списков и отдельных элементов, например.

Очень даже можно. Active Record
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242988
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сева, ты бы лбом не давил на кирпичную кладь, как обычно, - а подумал бы сначала. Все классы в ORM - прокси
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37242991
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ]Все классы в ORM - прокси
но не все понимают, что такое прокси. Будь более снисходительным.
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243027
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Еще один грамотей подтянулся. Умные книжки вы врядли осилите, хотя бы вики полистайте. Прокси - заместитель. Virtual proxy еще можно притянуть за уши к ленивой загрузке. А ORM имеют фасад(контекст в Linq/EF, сессия Hibernate), который скрывает за собой детали работы с БД.
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243028
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iПрокси - заместитель.
вообще-то посредник, представитель... грамотей, блин
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243029
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iORM имеют фасад ..., который скрывает за собой детали работы с БД.
почитай о том, что такое прокси
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243040
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Внятной терминологии на русском нет, тк переводят такие же, как ты с МСУ. Дословно с английского - заместитель . Не читай русскую вики. Вот тебе другая статья
Надеюсь, осилишь. Считать, что он подходит к ОRM может только ваша сладкая парочка
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243129
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iВнятной терминологии на русском нет, тк переводят такие же, как ты с МСУ. Дословно с английского - заместитель . Не читай русскую вики. Вот тебе другая статья
Надеюсь, осилишь. Считать, что он подходит к ОRM может только ваша сладкая парочка
узнаваем: ссылки не в тему, помешательство на шаблонах и т.д.
А почему ты не взял первое определение из своей же ссылки, основное, где прокси объясняется как посредник, агент, а взял какой-то бред про какого то заместителя? Потому что он неудобен для тебя и противоречит? Нужно было найти что-то про "заместителя", совершенно не в тему?
И при чем здесь шаблон, ссылку на который ты привел, сам хоть понял, сынку?
а это вообще шедеврально:
СеваНе читай русскую вики
перед ссылкой на русскую вики. спасибо.
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243338
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmМСУ]Все классы в ORM - прокси
но не все понимают, что такое прокси. Будь более снисходительным.
+1 :)
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37243341
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу русской вики поржал ))
...
Рейтинг: 0 / 0
DataMapper, DomainModel - а куда другие запросы к БД?
    #37261667
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
метод нужно определять в Book, маппинг - эту служебная локальная система Book и внешний мир о ней знать не должен.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / DataMapper, DomainModel - а куда другие запросы к БД?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]