Что означает «глубина наследования» для методов? - PullRequest
10 голосов
/ 19 мая 2011

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

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

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

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

У кого-нибудь есть объяснение тому, что это может говорить?

Ответы [ 2 ]

5 голосов
/ 19 мая 2011

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

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

Если вы возьмете сам класс, у него будет четкая серия базовых классов и собственная собственная глубина, независимая от глубины методов, которые всегда одинаковы или меньше самого класса.

3 голосов
/ 19 мая 2011

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

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

...