TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #32

@systemswing

Системный сдвиг

Просмотры1,150Количество просмотров
Опубликован20 окт.20.10.2022, 09:00
Содержимое поста

Содержимое

Кстати, пока готовлю большой пост-продолжение про модели данных: очевидно, что объектно-ориентированный подход совсем не отражает "объекты реального мира", стоит копнуть чуть глубже простого хранения данных. Если взять классическую задачу описания ситуации "человек пьет кофе из кружки" — всё время забываю, кто её предложил, кто-то из великих — то кто кому должен посылать сообщение (вызывать метод)? Кружка вызывает метод человека "пить_из(кружки)", или человек вызывает метод кружки, эээ, "поить(меня) "? И так, и так получается криво. Хорошее решение, которое часто предлагают — сделать отдельный класс-контроллер, который представляет процесс питья. Вот вам и отражение объектов реального мира! Уже спокойно выпить кофе не можем, какой-то внешний контроллер нужен! Паттерны проектирования вообще все полны такими абстракциями, которых в реальном мире нет. Какая-нибудь там абстрактная фабрика сосудов для питья. И ладно бы это был искусственный пример, так в практике такое сплошь и рядом: подписание договора — это метод договора или контрагента? Ах, опять контроллера "процесса подписания" (небось ещё и оформленного в виде паттерна "стратегия", чтобы универсализовать все шаги и все частные случаи подписантов и документов). В общем, очередной миф про удобство и отражение реального мира :)