Книга: Основы объектно-ориентированного программирования

Ключевые концепции

Ключевые концепции

[x]. С помощью наследования можно определять новые классы как расширение, специализацию и комбинацию ранее определенных классов.

[x]. Класс, наследующий другому классу, называется его наследником, а исходный класс - его родителем. Распространенные на произвольное число уровней (включая ноль) эти понятия становятся понятиями потомка и предка.

[x]. Наследование является ключевым методом как для повторного использования, так и для расширяемости.

[x]. Плодотворное применение наследования требует переопределения (предоставления классу возможности переписать реализацию некоторых компонентов его собственного предка), полиморфизма (возможности связывать ссылку во время выполнения с экземплярами разных классов), динамического связывания (динамического выбора подходящего варианта переопределенного компонента), совместности типов (требования, чтобы всякая сущность могла присоединяться только к экземплярам типов-наследников).

[x]. С точки зрения модулей наследник расширяет набор служб, предоставляемых его родителями. В частности, это полезно для повторно использования.

[x]. С точки зрения типов отношение между наследником и его родителем - это отношение "является". Оно полезно как для повторного использования, так и для расширяемости.

[x]. Функцию без аргументов можно переопределить как атрибут, но не наоборот.

[x]. Методы наследования, в особенности, динамическое связывание, позволяют разрабатывать децентрализованную архитектуру, в которой каждый вариант операции определяется в том же модуле, где описан соответствующий вариант структуры данных.

[x]. Для типизированных языков динамическое связывание можно реализовать с малыми накладными расходами. Связанные с ним оптимизации, в частности, применяемое компилятором статическое связывание и подстановка кода, помогают ОО-программам достичь или превзойти эффективность выполнения традиционных программ.

[x]. Отложенные классы содержат один или более отложенный (не реализованный) компонент. Они описывают частичные реализации абстрактных типов данных.

[x]. Способность эффективных подпрограмм вызывать отложенные позволяет примирить с помощью "классов поведения" повторное использование с расширяемостью.

[x]. Отложенные классы являются основным средством, используемым ОО-методами на стадиях анализа и проектирования.

[x]. Утверждения, применяемые к отложенным компонентам, позволяют точно специфицировать отложенные классы.

[x]. Если семантики динамического и статического связывания различны, то всегда нужно выбирать динамическое связывание. Если же они действуют одинаково, то статическое связывание следует рассматривать как оптимизацию, которую лучше возложить на компилятор. Компилятор может проверить и безопасно применить как эту оптимизацию, так и оптимизацию, связанную с подстановкой кода подпрограммы в точках вызова.

Оглавление книги


Генерация: 0.100. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз