Re[12]: Domain Model, мапперы и отчеты
От: Stalker. Австралия  
Дата: 22.04.08 12:08
Оценка:
Здравствуйте, Aikin, Вы писали:

A>1) Пользователь получил этот набор в одной бизнес транзакции? Тогда ничего не стоит (и это будет много проще чем кэш живущий все время приложения) сделать чтобы одинаковые сущности представлялись одинаковыми классами.

A>Тем более Идентити Мап гарантирует уникальность только в пределах одной бизнес транзакции: "An Identity Map keeps a record of all objects that have been read from the database in a single business transaction." (статья выше).
A>Этот паттерн дается за фри при использовании nHibernate

A>2) В разных?

A>Тогда в любом случае стоит перегрузить эти данные, так как их может изменить кто-то другой.

это вообще говоря смотря что называть бизнес-транзакцией В любом случае, для ситуаций типа "загруженные данные может изменить кто-то другой" имеется оптимистическая блокировка и кнопка "Обновить данные" на экране. А иначе просто потеряется весь смысл кэширования, если ты будешь перечитывать все данные для каждой так называемой "бизнес-транзакции".

A>То же самое про SomeObjectInfo. Причем тут даже не на каждый результат поиска, а на каждый резултат, что мы будем показывать пользователю.


(+ реализация сортировки/фильтрации)Что-то мне не кажется, что это сильно одинаковые по затратам веши тем более, если уж пошла такая пьянка, чем принципиально твой SomeObjectInfo лучше DataRow ? Он ведь тоже к доменной модели особого отношения иметь не будет

A>Ну как же: "если мы просто показываем данные как результат запроса, то используем DataRow, а если манипулируем ими, то Client".

не, там у тебя было что-то про дублирование изменений в обоих классах и прочее В датароу я ведь ничего дублировать не буду, просто заберу выбранный ID'шник и пойду с ним в БД

A>>>В моем понятии кэш это когда мы что-то храним чтобы не обращаться лишний раз к БД (например). А то про что ты говоришь это Identity Map.

A>>>См выше. про Equals()
раз уж ты так любишь точные названия паттернов, то как называется паттерн, который просто занимается кэшированием ? Что-то я такого у Фаулера не нашел. Да и вообще странный какой-то кэш получается, не гарантирует мне возвращение одного и того-же объекта

A>Ниразуниправда

A>В документации: 13.2.2. Using stored procedures for querying

действительно, не знал, а когда это там появилось ? А ленивая загрузка (на ХП) и оптимистическое блокирование тоже в нем есть ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.