Не существует общественного консенсуса о том что такое ООП. Согласитесь, было бы очень странно если бы вы встретились с Аланом Кеем и начали бы ему рассказывать о правильном взгляде на ООП, а он бы только и делал, что удивлялся сокрушаясь как он отстал от жизни.
Не могу согласиться, в моей религии это нормально. Только совсем не то что вы написали про контроль над желаниями другого объекта и управлением собственным контролом. Контроль это больше про структурное программирование, в ооп объекты пересылают друг другу сообщения. Попробуете взглянуть на ситуацию под другим углом, исключите контроль и ограничьте дизайн сообщениями. В системе где объект рука посылает сообщение объекту кружка, никакие другие объекты окажутся не нужны, а проверка права посылать сообщения кружке естественным образом окажется делегированной самой кружке.
MonkAlex предлагал вполне не сферическую ситуацию, когда кружка бьет током, более того, аналогичную ситуацию разбирал Peter Coad в какой то из своих книг. Но вы всех нас обвиняете в неправильном подходе к дизайну. Может вам все-таки стоит взглянуть на вещи шире?
Вообще, не обязательно пытаться кольнуть собеседника, чтобы после этого высказать свою точку зрения.
Я говорил о том, что способ точного отображения реального мира в декомпозиции имеет свои недостатки и написал какие. Но также есть другие подходы к декомпозиции, в которых объекты наделяются поведением которым оно не свойственно, нравится вам это или нет. Я не очень понял что такое чрезмерная декомпозиция, и с чем конкретно вы не согласны.
Ни разу на собеседовании вообще меня не спросили, что такое ООП, если дело доходило до него, но спросили про инкапсуляцию, наследование и полиморфизм, атрибуты доступа, как это работает с наследованием и прочие технические детали целевой технологии
Потому что это надо знать, чтобы пользоваться языком программирования для решения задач. От того, что кто-то выучил фразу «ООП — это представление объектов окружающего мира», знание и умение программирования у него не появится.
Знание синтаксиса еще не предполагает понимания парадигмы, ибо «на любом языке можно писать, как на фортране»
Извините, но толчок не получился. Вы слишком категорично настаиваете на своем видении ООП как единственно верном, в то время как он не то что не единственное, так еще и рассматривается иногда как не очень верное. Я прекрасно понимаю откуда растут ноги, все книжки про ООП начинаются с того, что рассказывают про мышление человека на основе объектов, показывают, что мир вокруг нас состоит из объектов и заканчиваются тем что показывают, как эти объекты представить в коде. При этом, если автор не предложит моделировать окружающий мир 1:1, то читатель сам сделает такой вывод в 100% случаев. Яркий представитель такого подхода в ООП Ivar Jacobson. Это очень понятный и удобный подход (по сути это готовый фреймворк для декомпозиции, как видишь мир так и дели его на классы), но у него есть недостатки и некоторые считают их фатальными. Могу выделить одну проблему о которую этот способ декомпозиции сильно спотыкается. Мир состоит из двух типов объектов — очень умных(человек) и абсолютно тупых(кружка). Если вы будете переносить, то что видите в реальности в код 1:1, то в результате вы получите жирнющие контроллеры (god object) манипулирующие тупыми объектами. Фаулер даже анти-паттерн такой описал Anemic domain model, утверждая, что это процедурный дизайн, а не объектный. Поэтому, нельзя утверждать на основе предложенного контекста, должна кружка браться или нет.
| Но в целом система работает, мне не страшно выходить на улицу
Это как средняя температура по больнице. Если ничего не иметь, никуда не лезть и фильтровать поступающую информацию, то можно спокойно жить и радоваться.
Ключевое слово здесь «заведомо». У вас же нет доказательств того, что товарищ из коммента выше знал, что его слова это не правда? Значит ваши обвинения не менее голословны чем его, но это еще не делает вас клеветником так же как и его. И это, умения читать не достаточно, чтобы читать законы.
Я говорил о том, что способ точного отображения реального мира в декомпозиции имеет свои недостатки и написал какие. Но также есть другие подходы к декомпозиции, в которых объекты наделяются поведением которым оно не свойственно, нравится вам это или нет. Я не очень понял что такое чрезмерная декомпозиция, и с чем конкретно вы не согласны.
Знание синтаксиса еще не предполагает понимания парадигмы, ибо «на любом языке можно писать, как на фортране»
Это как средняя температура по больнице. Если ничего не иметь, никуда не лезть и фильтровать поступающую информацию, то можно спокойно жить и радоваться.