Бьерн Страуструп.
Язык программирования С++
29
определяется степенью общности между разными типами, которая позволяет использовать
наследование и виртуальные функции. В некоторых областях, таких, например, как интерактивная
графика, есть широкий простор для объектно-ориентированного программирования. В других областях,
в которых используются традиционные арифметические типы и вычисления над ними, трудно найти
применение для более развитых стилей программирования, чем абстракция данных. Здесь средства,
поддерживающие объектно-ориентированное программирование, очевидно, избыточны.
Нахождение общности среди отдельных типов системы представляет собой нетривиальный процесс.
Степень такой общности зависит от способа проектирования системы. В процессе проектирования
выявление общности классов должно быть постоянной целью. Она достигается двумя способами: либо
проектированием специальных классов, используемых как "кирпичи" при построении других, либо
поиском похожих классов для выделения их общей части в один базовый класс.
С попытками объяснить, что такое объектно-ориентированное программирование, не используя
конкретных конструкций языков программирования, можно познакомиться в работах [2] и [6],
приведенных в списке литературы в главе 11.
Итак, мы указали, какую минимальную поддержку должен обеспечивать язык программирования для
процедурного программирования, для упрятывания данных, абстракции данных и объектно-
ориентированного программирования. Теперь несколько подробнее опишем средства языка, хотя и не
самые существенные, но позволяющие более эффективно реализовать абстракцию данных и объектно-
ориентированное программирование.
Достарыңызбен бөлісу: