|
|
|
[из 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?fid=59&msg=33739184&tid=2149128]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 433ms |

| 0 / 0 |
