3.8. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД
153
систем и при хорошо продуманной системе понятий, их описывающих. Та-
ким образом, объектно-ориентированный подход позволил облегчить и про-
блему работы со сложными программными системами.
Одним из выводов теории систем и системного анализа является то, что,
когда сложность систем превосходит некоторую границу, появляются новые
трудности и новые эффекты, которые были практически неразличимы для
малых систем. Лучше всего заметны появляющиеся неприятности, но для
людей, владеющих достаточно высокоуровневой системой понятий, откры-
ваются и новые возможности.Объектно-ориентированный подход смог под-
нять планку сложности программных систем, совладав с частью трудностей
и открыв новые возможности, характерные именно для больших систем и
для их целостного анализа.
25
Объектный подход является прежде всего структурой достаточно высо-
коуровневых понятий, которые надстраиваются над базисом программных
конструкций какого-то стиля первого уровня. В частности, объектная про-
грамма может с равным успехом базироваться и на структурном программи-
ровании, и на программировании от состояний, и на программировании от
приоритетов.
Отметим, что нынешняя литература по объектно-ориентированному про-
граммированию грешит тем, что то, что представляется как теория данно-
го стиля программирования, попросту неадекватно его практике. Причины
этого стоит разобрать, поскольку в курсах, специально посвященных ООП,
производится систематическая подмена понятий и даже истории вопроса.
Необходимо заметить, что в ООП нет никаких ограничений на измене-
ние наследником смысла операций предка. Конечно, благими пожеланиями
кишат все руководства, но, поскольку ограничений нет, на практике един-
25
Как ни парадоксально, именно эти принципиальные преимущества ООП труднее всего
показать в практике формального обучения в вузе.
Для преподавания надо найти небольшую предметную область, для которой можно было
бы проделать системный анализ и построить обозримую открытую модель. Это еще возмож-
но (например, в качестве таковой можно рассматривать игру в ‘очко’ с учетом различных
стратегий игроков и их психологии.) Но на таких задачах удается показать лишь некоторые
преимущества и некоторые стороны объектной модели, которые почти уравновешиваются
недостатками, связанными с резким увеличением объема сопровождающей моделирующую
программу информации.
Можно привести содержательную аналогию. Если построен мощный танк, то даже для
того, чтобы его разместить, требуется значительное пространство, а уж чтобы ему развер-
нуться и показать свои возможности... Естественно, что его нельзя опробовать на столе в
комнате директора или в аудитории, рассчитанной на 10 человек.