Здравствуйте, PC_2, Вы писали:
S>>Я считаю уместное замечание в контексте того что инкапсуляция важна не только для безопасности. Там написана правда. Не вся правда, но часть ее. Инкапсуляция относится не только к объектам, и не только к данным, а еще и к коду, который не нужно ломать.
PC_>Так в том то и суть. Что идеологи ООП недоглядели реальное устроство мира.
Идеологи ООП не претендовали на то что они повторили устройство мира. ООП — это подход к моделированию. Довольно простой, что бы завоевать популярность. Но на точность он не претендовал.
PC_>И докрутили костыль, в виде жесткого ограничивания данных за оболочкой класса.
Нет. Они использовали понятие инкапсуляции. Но оказалось все так, что часть понятия инкапсуляции, использованной в ООП, стала одним из китов ООП, а потом ее стали принимать за догму.
PC_>Но реально то не так.
PC_>Во-первых данные могут мигрировать от класса к классу.
Это еще один подход к моделированию вселенной. Превосходство его над ООП еще не оценено...
PC_>Во-вторых есть централизация прав в государстве. Прав классов на какието данные
PC_>Они выписаны в специальных контрактах и эти права динамически.
PC_>Это более интеллектуальная и гибкая система, которая отображена в управлении государством
PC_>и вообще сколь угодно сложном и живом организме
Система прав обеспечивает лишь один из аспектов инкапсуляции — нельзя делать это с этими данными. Но не обеспечивает сокрытия реализации, которое может работать на будущую совместимость версий, например.
S>>Недавно боролся с косяком в C++. Столкнулся с переопределенным общеупотрябимым оператором && в заголовочном файле без ограничения на используемые типы (шаблонный), после чего ломался практически любой код, включающий этот заголовок и использующий этот оператор &&.
PC_>Можна выстрелить, а можно и не выстрелить
ну как не выстрелить, если нужно позарез заюзать stl::vector, а он собака этот оператор использует в своих исходниках...