Что означает "глубина наследования" для методов?


Я только что установил Visual Studio Power Tool для анализа кода и Средство просмотра результатов . Кстати, отличные инструменты!

Когда я нажимаю кнопку "проанализировать решение", я получаю результаты:

  • ремонтопригодность
  • Цикломатическая Сложность
  • глубина наследования
  • Класс Сцепления
  • строки кода

Я понимаю, что все это означает, за исключением , что существуют различные значения "глубины наследования" для каждый метод в классе, и более крупный для класса.

Есть ли у кого-нибудь объяснение того, что это может означать?

2 10

2 ответа:

Поскольку каждый производный класс расширяет предыдущий класс, он добавляет дополнительную функциональность. Он может добавлять свойства или методы, которые не существовали в предыдущем базовом классе. Теперь общий набор методов больше, чем это было для базового класса. Этот процесс может быть повторен, когда производный класс будет снова производным от него.

Таким образом, если вы возьмете самый производный класс и выберете метод A и проследуете за ним до базового класса, который сначала реализовал A, это может быть другой метод. более глубокий класс , чем если бы вы выбрали метод B и последовали за ним до первого базового класса, который реализовал B. Вот почему глубина наследования может быть различной для разных методов. Если взять сам класс, то он имеет четкий ряд базовых классов и четкую собственную глубину, независимую от глубины методов, которые всегда одинаковы или меньше самого класса.

Вот отличное объяснение (с картинками!) глубины наследования:

Http://www.nayyeri.net/depth-of-inheritance-for-wpf-and-windows-forms-applications