Re[14]: ООП головного мозга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.09.11 09:36
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>>>Итого, в наличии две модели — модель данных и модель операций над моделью данных. И в каждой из моделей data structures будут разными. Всего то.

G>>>>Ага, вот только остается вопрос: какие классы создавать?

I>>>Классы в зависимости от функций каждой модели.


G>>То есть сделать кучу "параллельных" моделей, поддерживать синхронно изменения, перекладывать данные туда-сюда постоянно?


I>Зачем перекладывать ? Модель данных и модель операций — это значит что данных отдельно от операций над ними. Всё. Модель операций может вообще не иметь состояния. Но даже если и имеет, это далеко не всегда значит, что будут какие то параллельные модели где надо синхронизировать изменения.


Понял, "модель операций" это те самые сервисы, которые так любя те кто занимается anemic и не любят те кто занимаются ddd.
Re[15]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 09:40
Оценка:
G>Понял, "модель операций" это те самые сервисы, которые так любя те кто занимается anemic и не любят те кто занимаются ddd.
Вот всё-таки интересно, кто же "занимается ddd и не любит сервисы"? Откуда это?
Re[14]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 09:41
Оценка: -1
Здравствуйте, Baudolino, Вы писали:

L>>Это тебя понесло непойми куда. Прочитай определение уже и пойми, что твое разделение модели данных и кода обработки ее и есть уход от ООП в его классичесом определении ("data structures consisting of data fields and methods together with their interactions").

B>Вообще-то никакого ухода от ООП здесь нет. Логика, затрагивающая несколько сущностей, не обязательно должна быть инкапсулирована в одной из них. Вполне нормально, когда она инкапуслирована в каком-то контексте.

Откуда взялись "несколько сущностей"?

Еще немного, еще чуть-чуть и вы сами зададите вопрос о том, а в чем вообще смысл держать логику рядом с объектом. Где бенефиты?
Re[6]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 09:41
Оценка: :)
Минус — круто, хотелось бы узнать еще, с чем гр-н Lloyd не согласен.
Re[17]: ООП головного мозга
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 23.09.11 09:46
Оценка:
Здравствуйте, Lloyd, Вы писали:

I>>Account это entity, например такие классы генерит EF ICurrencyRates это конвертор курсов, нужен для перевода средств со счета на счет если у счетов разные валюты. ITrancferPolicy это правила которые определяют как происходит конкретный трансфер.


L>Что Account делает в полях сервиса? Зачем он там?


Для того, что бы сервис выполнял над ним операции. Это ж очевидно — отделение инициализации от операции. Удобно для работы передавать часть параметров в конструкторе, а остальные уже в конкретном методе для конкретной операции.
data structure здесь микс данных на которыми будут выполняться какие то действия и управляющие данные. Оба объекта Account являются частью этой data structure.

Еще вариант вот такой:
var rep = new AccountRepository(Application.Db);
var account1 = rep.LookUpFor(id_1);
var account2 = rep.LookUpFor(id_2);
var svc = new TransferService(Application.CurrencyRates);

svc.Transfer(account1, account2, 100, Currency.USD);


Почему это будет не ОО ? data structure будет немного другой, если точне, то будет хранить только управляющие данные как например ICurrencyRates, ITransferPolicy, а так же все остальные депенденсы которые только могут взяться. В определении ООП ничего не сказано каким должен быть data в data structure. Там используется общий термин, а следовательно подходят все случаи, в т.ч. когда data это управляющие данные.

I>>>>Или ты считаешь, что data structure может состоять только из примитивных типов ?

L>>>1. Что такое "примитивные типы"?
I>>int, string, double
L>Ок.

L>>>2. С чего вы это взяли, что я так считаю?

I>>Потому что один раз ты назвал такой подход "менее ооп"
L>При чем тут подход? С спрашивал "с чего вы взяли, что я считаю, что data structure может состоять только из примитивных типов"?

Мб. не правильно понял. Но ты ведь не проясняешь свою позицию, только кидаешься общими фразами вроде "читайте определение" и тд. Сэкономь время себе и мне. Не хочешь объяснять — я ж тебя за язык не тяну.

L>>>3. Какое это имеет отношение в тому, что обсуждается?

I>>Непосредственное.
L>Значит вам не составит труда продемострировать это отношение. Дерзайте.

В моём примере код ты сам углядел это отношение и один из примеров выделил как "более ООП". Я продолжаю ровно ту же тему
Re[15]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 09:46
Оценка:
L>Откуда взялись "несколько сущностей"?
(Капитан Очевидность) Любой метод класса с одним и более параметрами, равно как любая процедура с двумя и более параметрами, работает с несколькими сущностями. Сущности могут быть одного типа.

L>Еще немного, еще чуть-чуть и вы сами зададите вопрос о том, а в чем вообще смысл держать логику рядом с объектом. Где бенефиты?

Про бенефиты написано много в соответствующей литературе. Рекомендую ознакомиться, чтобы не выдавать одно предложение из википедии за "классическое определение ООП".
Re[15]: ООП головного мозга
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 23.09.11 09:49
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Понял, "модель операций" это те самые сервисы, которые так любя те кто занимается anemic и не любят те кто занимаются ddd.


Это мягко говоря неправда В книге DDD эванс пишет в т.ч. про сервисы
Re[15]: ООП головного мозга
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 23.09.11 09:53
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Еще немного, еще чуть-чуть и вы сами зададите вопрос о том, а в чем вообще смысл держать логику рядом с объектом. Где бенефиты?


Вопрос сводитcя к тому, как ты понимаешь слово data в data structure.
Re[16]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 10:56
Оценка:
Здравствуйте, Baudolino, Вы писали:

L>>Откуда взялись "несколько сущностей"?

B>(Капитан Очевидность) Любой метод класса с одним и более параметрами, равно как любая процедура с двумя и более параметрами, работает с несколькими сущностями. Сущности могут быть одного типа.

Повторю вопрос, откуда взялись "несколько сущностей"?

L>>Еще немного, еще чуть-чуть и вы сами зададите вопрос о том, а в чем вообще смысл держать логику рядом с объектом. Где бенефиты?

B>Про бенефиты написано много в соответствующей литературе. Рекомендую ознакомиться, чтобы не выдавать одно предложение из википедии за "классическое определение ООП".

Спасибо, родной. Но большинство литературы (включая Эванса) было мною давно прочитано.
А вам я в свою очередь могу порекомендовать не только читать литературу, но и вопросы, которые вам задают. Если вы затрудняетесь ответить, то переходить на личности — не самый лучший способ скрыть это.
Re[16]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 10:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Lloyd, Вы писали:


L>>Еще немного, еще чуть-чуть и вы сами зададите вопрос о том, а в чем вообще смысл держать логику рядом с объектом. Где бенефиты?


I>Вопрос сводитcя к тому, как ты понимаешь слово data в data structure.


Да, в этом и есть проблема. Я наерное неудачно использовал это слово.
Re[7]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 11:00
Оценка: -1
Здравствуйте, Baudolino, Вы писали:

B>Минус — круто, хотелось бы узнать еще, с чем гр-н Lloyd не согласен.


Очевидно, с текстом вашего поста.
// ваш кэп
Re[17]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 12:58
Оценка:
L>Повторю вопрос, откуда взялись "несколько сущностей"?
Я не понимаю смысл этого вопроса. Они взялись в качестве примера, в котором в рамках объектно-ориентированного подхода разделяются модель предметной области и бизнес-логика. По-моему, очевидно, что в ситуации, когда имеется один объект с парой-тройкой примитивных полей (или N никак не связанных объектов), бизнес-логику выносить некуда и незачем.
Re[8]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 12:59
Оценка: -1
L>Очевидно, с текстом вашего поста.
Что именно в нём вызвало у вас такую реакцию?
Re[18]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 13:07
Оценка:
Здравствуйте, Baudolino, Вы писали:

B>По-моему, очевидно, что в ситуации, когда имеется один объект с парой-тройкой примитивных полей (или N никак не связанных объектов), бизнес-логику выносить некуда и незачем.


Ок. Предположим, что незачем. Преимущества какие-нибудь есть в "не-вынесении"?
Re[9]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 13:09
Оценка:
Здравствуйте, Baudolino, Вы писали:

L>>Очевидно, с текстом вашего поста.

B>Что именно в нём вызвало у вас такую реакцию?

То, что DDD и anemic model — перпендикулярные концепции.
Re[16]: ООП головного мозга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.09.11 13:19
Оценка:
Здравствуйте, Baudolino, Вы писали:

G>>Понял, "модель операций" это те самые сервисы, которые так любя те кто занимается anemic и не любят те кто занимаются ddd.

B>Вот всё-таки интересно, кто же "занимается ddd и не любит сервисы"? Откуда это?

Наверное стоит почитать темы с DDD в названии
Re[16]: ООП головного мозга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.09.11 13:19
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


G>>Понял, "модель операций" это те самые сервисы, которые так любя те кто занимается anemic и не любят те кто занимаются ddd.


I>Это мягко говоря неправда В книге DDD эванс пишет в т.ч. про сервисы


Где именно?
Re[19]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 13:31
Оценка:
L>Ок. Предположим, что незачем. Преимущества какие-нибудь есть в "не-вынесении"?
Я обозначил тривиальный случай ровно потому, что его нет смысла обсуждать — он тривиален. Если вам очень важно знать, каковы плюсы и минусы различных подходов в случае модели с одним объектом, имеет смысл создать отдельную тему в разделе "О жизни". Если это просто способ что-нибудь сказать, но по существу вопроса возражений нет, давайте лучше просто закончим разговор и не будем тратить время.
Re[10]: ООП головного мозга
От: Baudolino  
Дата: 23.09.11 13:33
Оценка:
L>То, что DDD и anemic model — перпендикулярные концепции.
Ну выскажите свои аргументы, если не согласны. Почему DDD исключает или наоборот обязательно подразумевает anemic model?
Re[20]: ООП головного мозга
От: Lloyd Россия  
Дата: 23.09.11 13:42
Оценка:
Здравствуйте, Baudolino, Вы писали:

L>>Ок. Предположим, что незачем. Преимущества какие-нибудь есть в "не-вынесении"?

B>Я обозначил тривиальный случай ровно потому, что его нет смысла обсуждать — он тривиален.

Если он тривиальный, то и объяснить преимущества будет очень легко.

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


Кажется в демагогии этот прием называется "ложная альтернатива", не так ли?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.