Егор Бугаенко (teamed.io), известный своей непримиримой борьбой за правильное понимание ООП, теперь написал в блоге о том, что само понятие «объект» в большинстве случаев понимают неверно.
Перечислив его определения из различных источников (начиная с Википедии), он затем обрушился с критикой на их общее свойство: «все они обращаются с объектом так, словно это коробка с данными».
Почему это неправильно и что же это тогда на самом деле? Бугаенко считает образ коробки не соответствующим тому, что реально происходит на низком уровне. Предположим, говорит он, один наш объект получает часть данных от другого. При вызове первого память будет аллоцирована только для него, а второй получит свою порцию отдельно. Значит, данные второго не оказываются физически в первом, как в «коробке».
По мнению Егора, это означает, что объект не «содержит» данные, как это обычно преподносят, а является их «представителем». И пообщавшись с представителем определённой группы данных, можно получить от него те из них, которые тебе нужны.
Один из комментаторов его блога замечает: «Хватит говорить об объектах так, словно они твои воображаемые друзья». Бугаенко возражает: «Почему? Они реальнее тебя, мой воображаемый читатель 🙂 »
Ранее в этом году решительное отстаивание Егором своих смелых взглядов можно было услышать на JPoint 2016: там он занимался этим и в основной части, и на Student Day.
- Егор БугаенкоЕгор уже более десяти лет CTO в Teamed.io — софтверной компании с уникальной методологией разработки в распределенном режиме. Егор регулярно пишет на www.yegor256.com, пишет на Java в rultor.com, takes.org и jcabi.com. Егор живет то в Пало-Альто, то в Киеве. @yegor256