Re[17]: DDD протаскивание других слоев через параметры методов Domain
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.11.20 23:09
Оценка: +2
Здравствуйте, #John, Вы писали:

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


S>>и чем же следующий хамелеон хуже?

S>>
S>>class Chameleon
S>>{
S>>    public Color skinColor { get; set; }
S>>}
S>>

J>Он попадает под описание процедурного стиля программирования: разбиение задачи программирования на набор переменных, структур данных и подпрограмм.

Как так? Отличия лишь в синтаксисе и такой глубокий вывод о стиле... Метод ChangeSkin заменен методом set_skinColor. Больше ничего не изменилось...
Кстати, не считаю, что процедурный стиль плох.
А если так?
class Chameleon
{
    public Color skinColor { get; }
}


S>>Не, ну это детский сад какой-то. Я предпочитаю опираться на принципы, сформулированные Кэйем. У него ничего нет про "данные и логика в одном объекте".


J>Алан Кэй пишет

J>

J>OOP to me means only messaging, local retention and protection and
J>hiding of state-process, and extreme late-binding of all things.


J>"local retention" — это и есть отсылка к тому что состояние объекта находится внутри объекта.


J>Там же он пишет:

J>

J>I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning – it took a while to see how to do messaging in a programming language efficiently enough to be useful).


J>Биологические клетки свое состояние держат внутри себя, имеют разный набор данных(митохондрии, рыбосому, цитозоль), имеют разное поведение, и общаются посредством передачи ионов и молекул через каналы.


Да, сокрытие состояние объекта таки приветствуется. Но есть некоторое "но". Анемик не пытается делать из всего объекты. В нем моделируется не поведение пользователя, а поведение сервиса, производящего над пользователем некие действия. Поведение обработчика доменного события, если угодно. Пользователь в нем — сообщение и не стоит рассматривать его поля как его состояние. Не более, чем символы — состояние (неизменяемой) строки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.