|
|
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Если все можно сделать просто с помощью .NET и Table Model? Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 13:41 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
чувак у тебя что с головой Здесь обсуждается Java, а не .Net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 13:57 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Вы видимо не особо понимаете что такое Domain Model и в чем смысл данного типа архитектуры. Кстати между Domain Model и средствами ORM связи нет абсолютно никакой, если не хотите использовать Domain Model используйте архитектуру типа клиент сервер (при этом не забываем 7 отмерить прежде чем 1 раз испортить :)). Про средства ORM вам тоже нужно почитать побольше чтобы знать как минимум их типы и что они из себя представляют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 14:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Partisan Mчувак у тебя что с головой Здесь обсуждается Java, а не .Net тут по моему тусят те у кого с головой мысли и мозги, а не зацикленные на каком то одном пупе партизаны. Вопрос Iнtepeсующегося ахиренно в тему. OUВы видимо не особо понимаете что такое Domain Model и в чем смысл данного типа архитектуры. Кстати между Domain Model и средствами ORM связи нет абсолютно никакой, если не хотите использовать Domain Model используйте архитектуру типа клиент сервер (при этом не забываем 7 отмерить прежде чем 1 раз испортить :)). Про средства ORM вам тоже нужно почитать побольше чтобы знать как минимум их типы и что они из себя представляют. Domain model - способ организации слоя бизнес логики, т.е. понятие дважды "логическое", во-первых потому, что это pattern, во-вторых потому, что слой понятие тоже логическое (в отличие от слова tier). а вот архитектура это "клиент сервер", "трёхзвнная" т.е. это понятие физическое. (пробежал Фаулера всё немножко сложнее но и так сойдёт) ORM это если хотите библиотека отображающая друг на друга структуры. .NET это понятие маркетиноговое. просто все они тесно связаны guideline'ами и поэтому переплетаются в мозгах. А раскидать их все по полкам это действительно вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 15:24 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUВы видимо не особо понимаете что такое Domain Model и в чем смысл данного типа архитектуры.Что там знать-то? Вот передо мной книжка: Chapter 9. Domain Logic Patterns Transaction Script Domain Model Table Module Service LayerТри типа организации логики третьего звена. Описаны недостатки Transaction Script при росте сложности приложения и логики, достоинства Domain Model и тот же М.Фаулер в главе Table Module расписывает его прелести и отсутствие недостатков. Среди отсутствия недостатков: отсутствие необходимости в сложных (и дорогих) DataMapperах и O/R Mapping Tools ибо на каждую таблицу сооружается объект Table Module, которые затем и взаимодействуют. Скачайте книгу и прочтите сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 15:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
рассмотрим несколько фактов (в подтверждение пред) 1.на русском форуме hibernate.org самый частый (ИМХО) случай ORM - это клиент-сервер (толстый клиент), кто не понял - на хибере. 2.отсоединённые набор есть на яве и зовётся он RowSet. 3.Visual Studio просто так сделана, что запускаешь её и так и тянет налобать клиент-сервер. Но там можно трёхзвенку делать: DCOM-фасад выбирает и постит RecordSet'ы, просто тогда всё сложнее и нужно больше думать, а с такой красиво средой делать это некогда. (и написано про это хринова) Подобным свойством обладает JBuilder, то же самое - "клиент-сервер" тока отлетает. 4. Hiber портирован на .Net "о ужац!!!" NHibernate называется. 5. Хибер к сожалению слабоват для трёхзвенки с толстым клиентом - необходима штука типа EMF-SDO чтобы сериализованные объекты были больше похожи на RecordSet'ы. т.е. в этом случае хибер нивывозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 15:40 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Про преимущество domain Model написано в вашей же любимой книжке. Бизнес-логика в таких классах кодируется гораздо "лучче". Не надо думать о данных, ключах и пр.. Экземпляры представляют собой модели предм. области человечег, заказ, поставка ... имеют друг с другом прямые ассоциации без всяких гвоздей (очень удобно если представление работает в том же адр.пространстве) к вашим услугам настоящее наследование, делегирование и т.д. т.е если мы говорим о трёхзвенной архитектуре (а про клиент-сервер я говорить отказываюсь) то есть два варианта: .Net RecordSet и Java HiberDomain Model. Фасад в обоих случаях аналогичен (или не нужен в Web'е) тут рецепт один - практика. пяти табличное приложение действительно быстрее накидать на recordset'ах (и .Net рулит), а вот когда классов модели предм. области будет за пол сотни (это "не ахиреть сколько", а "жестокий бизнес") ... начнётся жуткая скука. снова повторюсь, оба способа организации бизнес логики доступны на обоих платформах - шер ше ля tools. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 16:11 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
нет, ну каменты будут. я для кого это пешу? себе, что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 15:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
exppнет, ну каменты будут. я для кого это пешу? себе, что ли?Судя по этому посту ^, для себя :) без обид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 19:01 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
exppнет, ну каменты будут. я для кого это пешу? себе, что ли?Походу тут только мы с тобой во что-то вникаем, остальным по барабану, читают методички Вот, тут подхватили правда перенесли в философию Модератор: мат удален ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 19:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
JozicСудя по этому посту ^, для себя :) без обид м...да... ну фиг я когда ещё раз на кнопки своими немащными мазгами надавлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2006, 00:05 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
exppнет, ну каменты будут. я для кого это пешу? себе, что ли? Ну держи. Аффтар жжет ! Но многа букаф и нипанятных слоф. Асобинна панравилась про вижуал Студию. Пиши ище ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 01:00 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
спасиба мастер зив за каммент. спасибо, Грасов за реабилитацию топега. Но мастер зив не просёк, что афтаржжотом моих графоманских амбиций не удовлетворить. Мне бы хотелось услышать обоснованныю критику моего мнения, на формирование которого мне понадобилось довольно много времени и сил. Если кроме афтаржжотов ничего не увижу - больше топег поднимать не буду (это модераторам). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 02:22 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
exppспасибо, Грасов за реабилитацию топега. это не мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 10:21 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
MasterZivАффтар жжет ! Но многа букаф и нипанятных слоф. Асобинна панравилась про вижуал Студию. Пиши ище !здорафске. што, денис попов, доволен каментами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 10:22 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
А.Грасоff™здорафске. што, денис попов, доволен каментами? MasterZivАффтар жжет ! Но многа букаф и нипанятных слоф. Асобинна панравилась про вижуал Студию. Пиши ище ! Илья, этот топик уже не в ПТ:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 13:24 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторDomain model - способ организации слоя бизнес логики, т.е. понятие дважды "логическое", во-первых потому, что это pattern...Domain Model это тип архитектуры, а не design pattern (для интересующихся, design pattern с аналогичными свойствами/функциями называется Facade). Вообще Domain Model появилась в Smalltalk еще лет 30 тому назад, равно как и основные design patterns (но о них сейчас речь не идет). В дальнейшем этот тип архитектуры перекачевал в другие технологии/языки и получил развитие в виде MVC и тд. авторORM это если хотите библиотека отображающая друг на друга структуры. ORM это mapping между реляционной и обьектно ориентированной парадигмами. Цель ORM - обеспечение data persistence между ОО системой и RDMBS. авторпросто все они тесно связаны guideline'ами и поэтому переплетаются в мозгах В принципе Domain Model и средства ORM никак не связаны (если вашей системе не нужен data persistence, то соответсвенно нет нужды и в ORM средствах). С другой стороны, большинство систем требуют data persistence. В этом случае есть два варианта, либо использовать средства ORM(Hibernate, Top Link и др), либо другие решения типа adapters, data sets и tables (стандартный набор .Net компонентов). Последний вариант не является ни ОО, ни ORM подходом, хотя и может быть использован в Domain Model/MVC/Business Logic. автортут рецепт один - практика. пяти табличное приложение действительно быстрее накидать на recordset'ах (и .Net рулит)...Не рулит здесь то что предлагает .Net, даже для 5 таблиц. При всех подходах (от RDBMS к ОО системе или наоборот) дело не в числе таблиц (которое диктуется условиями data persistence) а в сложности классов. А обеспечить data persistence сложных классов с помощью .Net средств (adapters, data sets, etc) ооочень сложно и криво (хотя есть и плюс в использовании хранимых процедур на стороне сервера). Отсюда и мнение о том что этот подход не вяжется с ООП (в сети куча статей). В свое время у меня был свое ORM решение которое давольно таки нормально работало/работает в нескольких системах. Сейчас в сети существует аналогичный проект Amber (для ORM mapping я использовал abstract factories, так как annotations в java тогда еще не было, да и архитектура оставалась общей для обоих c# и java). Относительно вживления ORM средств в 3,4 системы интересного мало, в любом случае это всего лишь один из компонентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 13:31 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
expp Но мастер зив не просёк, что афтаржжотом моих графоманских амбиций не удовлетворить. Прости, это был единственно возможный комментарий, пришедший в голову в столь поздний час... Не расстраивайся, может будут и другие ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 19:55 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Denis Popov Илья, этот топик уже не в ПТ:) Да ладно, не придирайтесь, нормальное живое общение. Мне действительно пост понравился от expp. Я еще почитаю, поумнее ченибудь напишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 19:57 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUDomain Model это тип архитектуры, а не design pattern (для интересующихся, design pattern с аналогичными свойствами/функциями называется Facade). Фасад? У Мартина Фаулера DomainModel это вовсе не фасад. Это модель предметной области отражённая ввиде классов, подразумевающая использование таких вещей наследование и всяких разных паттернов. Такая структура никаким боком не ложится на активную таблицу или активную запись, которые один к одному привязываются к физическим таблицам базы данных и не содержат не тривиальных связей. Для того, чтобы уложить domain model в базу требуются DataMapper'ы. ORM, н-р хибернейт, по сути и есть DataMapper + разные вкусности ввиде кешей, unit of work и т.п. Если не писать DataMapper в ручную, то использование domain model очень упрощает написание приложений со сложной логикой работы, т.к. вместо процедурного подхода во всю начинает использоваться ооп. Говорю так, потому что имел "счастье" наблюдать, как начинает при усложнении логики трещать приложение, построенное на базе транзакшин скриптов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 13:19 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторDomain Model это тип архитектуры, а не design pattern (для интересующихся, design pattern с аналогичными свойствами/функциями называется Facade). авторФасад? У Мартина Фаулера DomainModel это вовсе не фасад. Это модель предметной области отражённая ввиде классов, подразумевающая использование таких вещей наследование и всяких разных паттернов.а где вы в приведенной фразе видите утверждение что Domain Model это Facade? как раз наоборот, говорится что Domain Model это не design pattern, просто еще существует (независимо от Domain Model) design pattern называемый Facade который имеет аналогичные свойства/функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:40 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUпросто еще существует (независимо от Domain Model) design pattern называемый Facade который имеет аналогичные свойства/функции. В чём аналогичные, что такое скрывает от общественности domain model? Таблички в базе данных? Так этим занимает ORM, а не модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:01 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторВ чём аналогичные, что такое скрывает от общественности domain model? Таблички в базе данных? Так этим занимает ORM, а не модель. А при чем тут таблицы и ORM компоненты? Вы почему то смотрите на Domain Model исключительно в контексте работы с ORM. Хотя это разные вещи, причем не обязательно связаные между собой (ORM средства могут использоватся как компонент Domain Model, а могут и не использоваться. Выше об этом уже говорилось). Сходство с Facade в том что Domain Model позволяет работать Application Model (иногда используется просто термин Model) с Domain Objects не напрямую а а через так называемую Administrative Object (иногда используется термин Orchestrating Object). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:15 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
1. domain model это точно pattern т.к. книжка называется PATTERNS of enterp. application ARCHITECTURE. если хотите ШАБЛОНЫ АРХИТЕКТУРЫ. поле этого я думаю фраза OU OUDomain Model это тип архитектуры, а не design pattern звучит несколько странно. Я думаю, может быть вы (OU) под шаблоном (перевод оспаривается) понимаете GoF. Но у них не enterp app, а у Фаулера они самые. Ну я Александера это слово имело вообще широкий смысл (томов на десять !!! серьёзно я в Грэхэме прочитал). скобочки ваши вообще обескураживают OU(для интересующихся, design pattern с аналогичными свойствами/функциями называется Facade). Remote Facade - огрублённый (coarse grained) интерфейс для клиентов для удалённого обращения к сильно детализированной (fine grained) Domain Model. Он в принципе процедурный - в самом простом случае имеет два метода - выбрать("что"):recordSet и записать(recordSet) так же добавляют методы - use case'ы. Если представление работает в том же адресном пространстве то он вообще не нужен и обращается оно к Domain Model напрямую. В чём "аналогия" между ними ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 expp: авторЯ думаю, может быть вы (OU) под шаблоном (перевод оспаривается) понимаете GoF. Но у них не enterp app, а у Фаулера они самые Совершенно верно. Architecture patterns относятся к дизайну/взаимодействию системы/компонентов системы, Design patterns относятся дизайну/взаимодействию классов. авторRemote Facade - огрублённый (coarse grained) интерфейс для клиентов для удалённого обращения... Вы здесь немного путаете Architecture patterns с Design patterns, а речь шла о сходстве некоторых свойств Domain Model и Facade (Design pattern). Насчет сходства смотрите топик выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:44 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUА при чем тут таблицы и ORM компоненты? Вы почему то смотрите на Domain Model исключительно в контексте работы с ORM. Хотя это разные вещи, причем не обязательно связаные между собой (ORM средства могут использоватся как компонент Domain Model, а могут и не использоваться. Выше об этом уже говорилось). Коль скоро тема развернулась вокруг книги Фаулера "архитектура корпоративных приложений", то и смотрю я исключительно в её контексе. Вы даёте совершенно иную трактовку терминам. Domain Model, Transaction script - это способы представления бизнес логики. DataMapper (ORM) ,Active Record, etc - способы взаимодействия с источниками данных. Т.о. Domain Model не является ни чьим фасадом. C большой натяжкой фасадом можно обозвать DataMapper. OU Сходство с Facade в том что Domain Model позволяет работать Application Model (иногда используется просто термин Model) с Domain Objects не напрямую а а через так называемую Administrative Object (иногда используется термин Orchestrating Object). Вы путаете термины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:57 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 NotGonnaGetUs: авторВы даёте совершенно иную трактовку терминам. уважаемый, читайте плиз топики внимательней. В каком месте я давал терминам иную трактовку? авторDomain Model, Transaction script - это способы представления бизнес логики. DataMapper (ORM) ,Active Record, etc - способы взаимодействия с источниками данных. А где вы видели что я трактовал это иначе? авторВы путаете термины. Я ничего не путаю, вы просто недостаточно хорошо знает что такое Domain Model, либо не совсем понимаете то что читаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 16:07 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUВ каком месте я давал терминам иную трактовку? Хотя бы тут: "Сходство с Facade в том что Domain Model позволяет работать Application Model (иногда используется просто термин Model) с Domain Objects не напрямую а а через так называемую Administrative Object (иногда используется термин Orchestrating Object)." OUЯ ничего не путаю, вы просто недостаточно хорошо знает что такое Domain Model, либо не совсем понимаете то что читаете. Откройте книжку, прочитайте что пишет Фаулер. Я не сомневаюсь, что термин Domain Model используется ещё в 256 значениях у других авторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 16:14 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторХотя бы тут: "Сходство с Facade в том что Domain Model позволяет работать Application Model (иногда используется просто термин Model) с Domain Objects не напрямую а а через так называемую Administrative Object (иногда используется термин Orchestrating Object)."Ну и какие тут термины я трактовал иначе? Или хотите сказать DM работает по другому? Или Facade работает по другому? авторОткройте книжку, прочитайте что пишет Фаулер. Я не сомневаюсь, что термин Domain Model используется ещё в 256 значениях у других авторов. Вы из пальца домыслы не высасывайте, а разберитесь что всетаки есть DM. Потому как не может быть ни 256 ни даже 2 разных DM(ответвления/дополнения в виде MVC, Model 2 и др не в счет конечно). Тот же Фаулер, исходя из приведенных отрывках, говорит о том же самом. Проблема в том что вы это не понимаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 16:27 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OUТот же Фаулер, исходя из приведенных отрывках, говорит о том же самом. Проблема в том что вы это не понимаете. Бог мой. Вы судите о том, что я понимаю и что не понию по кем-то цитируемым отрывкам из Фаулера? Это, право, не серьёзно. "Типовое решение domain model предусматривает создание сети взаимодействующих обхектов, каждый из которых представляет некую осмысленную сущность - либо такую крупную, как промышленная корпорация, либо настолько мелкую, как строка формы заказа." И здесь и на последующих страницах не идёт никакой речи о том, чтобы domain model выступала в качестве facade для каких-то объектов. http://ooad.asf.ru/patterns/patterninfo.asp?ID=21 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 17:00 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
моё мнение такое: OU не прав разделяя Architecture patterns и Design patterns, и скрещивая Facade и Domain Model. Не прав на столько, что доказывать обратное по-моему просто бесполезно. Вы хотя бы с определений из одного контекста начните, напишите "Architecture patterns" это ... "Design patterns" это ... и т.д. Вот найдите и процитируйте и укажите источник. А то вы помоему свои какие то сентенции излагаете... В догонку: ORM это Data Mapper без которого Domain MOdel тяжка и беспросветна. А DM бывает без ORM только тогда когда весь граф данных (вся модель) за один раз сериализуется в файл. ацтойный вариант. ну и меня подобные терминологические споры вообще не интересуют. я так понял тема про RecordSet vs Hibernate раскрыта??? Вопрос такой: По-моему Hibernate варианту не хватает лучшей поддержки UnitOfWork. Т.е. в варианте Web с Фасадом всё рулит - Фасад открывает сессию, изменяет объекты, в конце транзакции пишет. Но вот в случае с толстым клиентом и нужно позволить клиенту изменить/удалить/вставить выкачанные объекты. а потом отослать именно все изменения фасаду. Я сейчас отсылаю всё (все выбранные объекты включ. изменные и новые) и дополнительно отсылаю мн-во удалённых. Соответственно вливается (merge) в сессию то что вливать не надо. Ну и как то не интересно. Это проблема? или её нет? кто как делает что то подобное? кто нибудь скрещивал Hibernate + EMF-SDO? А отдельно EMF-SDO использовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 17:36 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторБог мой. Вы судите о том, что я понимаю и что не понию по кем-то цитируемым отрывкам из Фаулера? Это, право, не серьёзно. Я и не сужу о ваших знаниях по чьим то высказываниям. Имелись ввиду высказывания о том что имел ввиду Фаулер говоря о DM. О вашем незнании DM я сужу по другим факторам. Ладно, будем конструктивнее. Начнем с того что такое DM(я сорри заранее если, где то будет не совсем понятно. у меня в голове термины на инглиш, которые я буду все равно указывать для аутентичности:)). DM это тип архитектуры которая предусматривает описание бизнес проблемы (problem domain) и позволяет отделить решение бизнес проблемы от пользовательского интерфейса (UI). К примеру бизнес проблема заключается в моделировании работы госпиталя. В этом случае DM будет содержать классы абстракционирующие пациентов, палаты, докторов, лекарства и другие статические своийства включая ассоциации(structural model). Естественно будут и динамические своийства, т.е протоколы классов и из взаимодействие (dynamic model). Все это называется domain objects и соответственно находится внутри DM. Это в принципе тоже о чем и говорит Фаулер и то же что упоминаете вы: автор"Типовое решение domain model предусматривает создание сети взаимодействующих обхектов, каждый из которых представляет некую осмысленную сущность - либо такую крупную, как промышленная корпорация, либо настолько мелкую, как строка формы заказа." Второй аскпект DM, как уже было написано выще заклучается в отделении бизнес модели (называйте это бизнес логикой если хотите) от UI. Причина в переносимости (portability), поддержке (maintenance) и тд. Все это формирует золотое правило планирования систем (system architecture) что DM и UI всегда должны быть отделены друг от друга. Этот аспект поднимает вопрос о том что между DM и UI должен быть некий слой который будет адаптировать DM к разным (а может быть и нескольким паралельно используемым) UI. Этот слой называется application model(упоминался в предидущих топиках) и является мостом между DM (business tier) и UI (presentation tier). Теперь самое (или почти самое) интересное. Мы знаем что в нашей DM существует множествое обьектов связанных ассоциациаями. Но мы также знаем что обьекты взаимодействуют друг с другом и мы также знаем что несмотря на взаимодействия обьекты не должны быть связаны между собой (имеется в виду loose coupling). Плюс к этому, мы должны принять во внимание и тот факт что application model тоже должна взаимодействовать с обьектами внутри DM (domain objects). Эти проблемы решаются путем создания administrative object (orchestrating object) внутри DM. Другими словами, обьекты внутри DM будут общаться друг с другом не напрямую а через admin object. Аналогично application model будет работать с DM через admin object. Здесь на самом деле отлично видны как минимум два design pattern - mediator и facade. Причем оба они имплементируются всего лишь одним обьектом - admin object. Красиво, а? Теперь об ORM (я не стал все смешивать в кучу сначала для ясности). Есть несколько вариантов подклучения ORM компонентов к подобной системе. Имхо самый красивый это включение ORM компонента внутрь admin object (по ходу design pattern используемая в данном случае - Composite). Описание взаимодействия admin object с ORM компонентом опускаю, это отдельная тема, очень интересная кстати. Ну и что здесь (имеется в виду описание DM) не совпадает с Фаулером? Если вам это интересно и хотите узнать больше (но не можете найти в сети), то могу найти и отправить вам выдержки из университетских пособий (все на инглиш) где все разжевано по буквам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 17:58 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 expp: автормоё мнение такое: OU не прав разделяя Architecture patterns и Design patterns, и скрещивая Facade и Domain Model. Не прав на столько, что доказывать обратное по-моему просто бесполезно. Вы хотя бы с определений из одного контекста начните, напишите "Architecture patterns" это ... "Design patterns" это ... и т.д. Вот найдите и процитируйте и укажите источник. А то вы помоему свои какие то сентенции излагаете... Да писал уже, что еще один раз написать, или вы вернетесь и прочтете внимательно? такие вещи в универах учат, типа дважды два и если вы думаете что architectural patterns и design patterns это одно и тоже то дело ваще конечно... автори скрещивая Facade и Domain ModelА кто их скрещивает? Facade (как вариант) используется для имплементации DM, куда еще проще то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:09 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OU Плачу. Скажите мне, друг сердечный, с чего ради domain model стала выполнять роль фасада? Она может скрываться за фасадом, но никак не являтся им. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:11 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
еще раз, где написано что DM выполняет роль Facade? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:13 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
авторОна может скрываться за фасадом, но никак не являтся имтак вам же и говорят, что взаимодействие с (и внутри) DM происходит через admin object. Вот где facade! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:15 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OU авторОна может скрываться за фасадом, но никак не являтся имтак вам же и говорят, что взаимодействие с (и внутри) DM происходит через admin object. Вот где facade! Нам говорят " (для интересующихся, design pattern с аналогичными свойствами/функциями называется Facade)."(с)ou. Domain Model НЕ является аналогичным по свойствам Facade. Аналогичным по свойствам является Application model. Наличие DM не 100% приводит к появлению всех тех надстроек, о которых вы говорите, по этой причине их нельзя рассматривать как её неотъмлемую часть. MCV не являются способом описать бизнес логику. Повторю то, о чём говорил с самого начала: термин DM в ваших пособиях и у Фаулера трактуется несколько по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:23 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OU Хотелось бы уточнить: Composite описывает решение представления иерархий часть-целое в ОО-языках. Вы имели в виду что нужно указанный admin object и ORM-средство моделировать при помощи древовидной иерахии? А вам не кажется что это вещи разного порядка, ну т.е. это как сказать "будем называть систему ручкадвери - автомобиль древовидной иерархией"? Что же касаеться спора о том является ли домен патерном или видом системной архитектуры... imho это демагогия - всегда можно сказать, что система в которой есть слой из доменов основана на соответсвующей архитектуре, а сами домены реализованы с помощью соответсвующих подходов и правил (ака патернов). И еще, у вас судя по всему представление о доменам больше всего соответсвующее реализации идеи в j2ee и entity beans (вы говорили еще про smalltalk, но я с ним не знаком). Так вот идея вообще-то претерпела длительно развитие и сейчас уже может отличаться от той что была когда-то применена в smalltalk (я это утверждать не могу но сложилось именно такое впечатление). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:30 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 notgonnagetus: сорри за то что не пояснил сходство дословно с вашим предложением. По ходу всего топика было ясно что к чему, тем более тому кто знает что такое DM. Относительно application model, то если вы хотите сравнить ее по аналогии с design patterns то это будет adapter или decorator но никак не facade. Опять же никто и не говорил что MVC описывает бизнес логику. Имелась ввиду архитектура MVC vs архитектура использующая DM (+ application model, ui). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:36 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 funikovuri: авторВы имели в виду что нужно указанный admin object и ORM-средство моделировать при помощи древовидной иерахии?Не обязательно сложные структуры. Возьмите как примитивный вариант instance variable (типа construction by composition) авторИ еще, у вас судя по всему представление о доменам больше всего соответсвующее реализации идеи в j2ee и entity beans (вы говорили еще про smalltalk, но я с ним не знаком). Так вот идея вообще-то претерпела длительно развитие и сейчас уже может отличаться от той что была когда-то применена в smalltalk (я это утверждать не могу но сложилось именно такое впечатление). в чем идея принципиально изменилась? что бизнес логика исчезла? ORM средства поменялись конечно в связи с persistence beans которые можно использовать вместо hibernate (ЕЕ 5). Плюс куча других вещей, но не фундаментальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:43 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OU2 funikovuri: авторВы имели в виду что нужно указанный admin object и ORM-средство моделировать при помощи древовидной иерахии?Не обязательно сложные структуры. Возьмите как примитивный вариант instance variable (типа construction by composition) я всегда думал что instance variable это просто instance variable. А вот одним из требований Composite является наличие общего суперкласса у части и целого... можете привести ссылку на описание Composite в котором будет сказано что instance variable является его частным случаем? автор авторИ еще, у вас судя по всему представление о доменам больше всего соответсвующее реализации идеи в j2ee и entity beans (вы говорили еще про smalltalk, но я с ним не знаком). Так вот идея вообще-то претерпела длительно развитие и сейчас уже может отличаться от той что была когда-то применена в smalltalk (я это утверждать не могу но сложилось именно такое впечатление). в чем идея принципиально изменилась? что бизнес логика исчезла? ORM средства поменялись конечно в связи с persistence beans которые можно использовать вместо hibernate (ЕЕ 5). Плюс куча других вещей, но не фундаментальных. Идея на самом деле действительно сильно изменилась и основной крен тут в сторону дальнейшей специализации доменов как легкой сущности, описывающей структуру и "собственную бизнес логику" (по сути некоторые ограничения целостности) тогда как именно бизнес логика переноситься в отдельные классы инкапсулирующие reusable unit-of-work components ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:55 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
OU2 notgonnagetus: сорри за то что не пояснил сходство дословно с вашим предложением. По ходу всего топика было ясно что к чему, тем более тому кто знает что такое DM. Я знаю, что такое DM. Я вижу, что ваше DМ это DМ фаулера + application model + admin obejcts + ... Мне было абсолютно не очевидно, почему DM это Facade. OU Относительно application model, то если вы хотите сравнить ее по аналогии с design patterns то это будет adapter или decorator но никак не facade. В таком случае я не знаю, какой смысл вы вкладываете в application model и зачем вообще упоминалось слово "фасад". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 19:00 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
2 funikovuri: авторя всегда думал что instance variable это просто instance variable. сорри (уже запарился писать на самом деле:)). имелся ввиду примитивный вариант construction by composition, т.е включение ORM компонента внутрь admin object как instance variable. авторИдея на самом деле действительно сильно изменилась и основной крен тут в сторону дальнейшей специализации доменов как легкой сущности, описывающей структуру и "собственную бизнес логику" (по сути некоторые ограничения целостности) тогда как именно бизнес логика переноситься в отдельные классы инкапсулирующие reusable unit-of-work components ничего нового в этом подходе нет на самом деле, если я вас правильно понял. Вас ведь не заставляли/заставляют использовать только один подход (3-tier к примеру). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 19:22 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
а воз и ныне там. с интересом жду продолжения дискуссии --------------------------------------- как и год назад я бью словом наповал(к) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 18:41 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
Alex Cattа воз и ныне там. с интересом жду продолжения дискуссии Если интересно, то можно реанимировать топик /topic/85698 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:53 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
funikovyuri Alex Cattа воз и ныне там. с интересом жду продолжения дискуссии Если интересно, то можно реанимировать топик /topic/85698 мне - интересно - но я -- обсуждать пока не могу - я не рублю в этом и в процессе изучения -- так что многого со мной не пообсуждаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 12:08 |
|
||
|
[из Java] Кому и зачем нужна Domain Model вместе с Hibernate
|
|||
|---|---|---|---|
|
#18+
funikovyuri Alex Cattа воз и ныне там. с интересом жду продолжения дискуссии Если интересно, то можно реанимировать топик /topic/85698Есть обсуждение на другом форуме http://gzip.rsdn.ru/Forum/Message.aspx?mid=1897037&pg=2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 20:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2149128]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 468ms |

| 0 / 0 |
