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


Использование наследования: таксономия таксономии


Мощь наследования - это следствие его универсальности. Правда и то, что временами оно наносит вред, заставляя многих авторов вводить ограничения на механизм. Понимая эти опасения, а иногда и разделяя их, отбросим случайные сомнения и страхи и научимся радоваться наследованию во всех его законных вариантах, к исследованию которых мы теперь и переходим.

Дадим обзор правильного использования наследования:

  • наследование подтипов (subtype inheritance);
  • наследование вида (view inheritance);
  • наследование с ограничением (restriction inheritance);
  • наследование с расширением (extension inheritance);
  • наследование с функциональной вариацией (functional variation inheritance);
  • наследование с вариацией типа (type variation inheritance);
  • наследование с конкретизацией (reification inheritance);
  • структурное наследование (structure inheritance);
  • наследование реализации (implementation inheritance);
  • льготное наследование (facility inheritance) с двумя специальными вариантами: наследование констант и абстрактной машины (черного ящика) (constant inheritance и machine inheritance).

Некоторые из этих категорий (подтипы, вид, реализация, конкретизация, льготы) приводят к специфическим проблемам, обсуждаемым в отдельных разделах.



Содержание раздела