Объектно-ориентированные мысли
Как невежественному программисту объяснить преимущества объекто-ориентированного программирования? Хотя бы то, что объем кода сокращается при грамотном использовании наследования за счет вынесения интерфейса или наиболее повторямой части кода в базовые классы? Непросто.
Однако придумалась мне вот какая аллегория:
в первом или втором классе по математике проходят операцию «вынесение общего множителя за скобки». Отличная ИМХО иллюстрация:
A * B + C * B + D * B = (A + C + D) * B.
В том же и преимущество наследования – скоращаем код, вынося общие члены «за скобки» (т.е. в базовые классы).
Добавить в закладки: (в том числе и в Twitter)
Читайте также:

На это резонно могут ответить, что такую операцию решают без ООП вынесением в подпрограмму.
Как по мне, технически ООП полезно из-за полиморфизма, а в остальном – благодаря «очеловечиванию»
программирования через управление объектами, а не регистрами процессора или подпрограммами.
Кроме того, программирование это не всегда только написание кода. Это также чтение программ
другими программистами (либо самим автором, но через год, скажем) с целью редактирования. Тогда
очень полезна инкапсуляция, когда автором кода дается понять какие методы и поля класса важны
для стороннего использования, а какие – только для внутренних нужд. Да и вообще это для себя важно
на этапе разработки, но новичку этот довод не покажется убедительным.