> -- Сергей Прохоренко писал(а):
> На праздниках постараюсь перевести то хорошее, что тут было упомянуто про ООП, на простой русский язык и систематизировать. Надо признать, что новояз   , которым описывается ООП, немало способствует затуманиванию сути вопроса.В качестве совета...
1. Желательно показать преемственность идей структурного, модульного и объектно-ориентированного программирования. В свое времяя пытался это сделать, может быть это как-то Вам поможет. Трансформацию идей и концепций полезно понимать для их правильного позиционирования и использования в своей работе.

2. Исходя из п. 1, можно показать, что у объектно-ориентированного программирования иная сфера применения. Если структурное и модульное программирование имели своей целью улучшение качествапрограмм(удобство разработки, развития и сопровождения программ), то областью ООП является разработкасистем. Невозможно получить вразумительный ответ на то, зачем программе может понадобиться разнообразие, получаемое в результате полиморфизма или наследования. В программе проще (и правильнее!) вызвать какую-то подпрограмму (процедуру/функцию) и, если необходимо, то "подработать" данные перед передачей в нее в виде фактических параметров и/или "подработать" данные после получения результата из нее. Создавать же отдельные самостоятельные программные блоки, где данные обрабатываются сообразно с их спецификой, для программ избыточно. В системе это не так. Система содержит необходимые "строительные блоки" и правила их связывания, благодаря которым, решаются конкретные задачи.

3. Исходя из п. 2, можно показать, чем подход к созданию систем принципиально отличается от подхода к разработке программ. Самое важное среди этих отличий состоит в том, что программа призвана решать некоторую задачу (или небольшое подмножество однотипных задач). Система, сама по себе, задач не решает, она представляет собой модель... некоторой предметной области. С помощью этой модели могут решаться множество самых разных задач, в том числе, тех задач, о которых разработчики систем (и их частей) возможно даже не догадывались. И здесь разнообразие элементов не только полезно, но и важно с точки зрения использования и развития системы/предметной области.

4. Исходя из п. 3, нетрудно заметить, что изменение в точке приложения усилий при разработке, порождает и иные подходы к анализу и проектированию. При решении задач (написании программ) принципиально важно найти удачный способ/метод/алгоритм решения и успешно его реализовать. Если впоследствии изменить метод, то программу придется существенно изменить. При разработке систем, важно уметь моделировать предметную область, выделить в ней ключевые элементы (подсистемы), установить правила взаимосвязи между ними, то есть, нужно семантическое моделирование, позволяющее выделить и отобразить в модели суть каждого понятия (элемента и связи). А потом, на основе полученной семантической модели, развивать многообразие элементов, ориентируя их на возможность применения в самых разных задачах.

И т.д.