gns_ua: (Default)
gns_ua ([personal profile] gns_ua) wrote2012-07-17 01:17 pm

(no subject)

Но вернёмся к более распространённым системам объектно-ориентированного программирования. Чего я никогда не мог понять, так это отношения объектов с внутренним состоянием. До изучения ООП всё было просто и прозрачно: есть структуры, хранящие несколько связанных данных, есть процедуры (функции), их обрабатывающие. выгулять(собаку), снятьс(аккаунт, сумма). Потом пришли объекты, и это было тоже ничего (хотя читать программы стало гораздо сложней — моя собака выгуливала [кого?], а аккаунт снимал деньги [откуда?]). Затем я узнал про сокрытие данных. Я всё ещё мог выгулять собаку, но вот посмотреть состав её пищи уже не мог. Пища не выполняла никаких действий (наверное, можно было написать, что пища.съесть(собака), но я всё-таки предпочитаю, чтобы моя собака ела пищу, а не наоборот). Пища — это просто данные, а мне (и моей собаке) нужно было просто получить к ним доступ. Всё просто. Но в рамки парадигмы влезть было уже невозможно, как в старые джинсы конца 90-х.

----

Я не знаю, как моделировать задачу. Считается, что ООП позволяет отображать в программе объекты реального мира. Однако в реальности у меня есть собака (с двумя ушами, четырмя лапами и ошейником) и счёт в банке (с менеджером, клерками и обеденным перерывом), а в программе — ВыгулМенеджер, СчётФабрика… ну, вы поняли. И дело не в том, что в программе есть вспомогательные классы, не отражающие объекты реального мира. Дело в том, что поток управления изменяется. ВыгулМенеджер лишает меня удовольствия от прогулки с собакой, а деньги я получаю от бездушного БанкСчёта (эй, где та милая девушка, у которой я менял деньги на прошлой неделе?).

http://habrahabr.ru/post/147927/#habracut

[identity profile] neonox.livejournal.com 2012-07-17 10:46 am (UTC)(link)
Норм для холивора на хабре. Каметны даже не читал, думаю ад и израиль от сколковских успешных.

[identity profile] v-l-a-d.livejournal.com 2012-07-17 01:25 pm (UTC)(link)
в каментах аналитики с хабра заминусовали автора за утверждение "сеттеры и геттеры нарушают инкапсуляцию"

[identity profile] neonox.livejournal.com 2012-07-17 01:27 pm (UTC)(link)
Ну, да, это очевидно)

[personal profile] serge_redfield 2012-07-17 03:42 pm (UTC)(link)
Можно, я не буду всё это читать?
А то моск один, а разных хмм... продуктов для его умервщления много...