Избегайте излишнего наследования
Обновлен: Ноябрь 2007
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Категория |
Microsoft.Maintainability |
Критическое изменение |
Критическое изменение |
Причина
Тип расположен глубже четырех уровней в иерархии наследования.
Описание правила
Глубокие иерархии вложенных типов трудно отслеживать, понимать и поддерживать. Данное правило ограничивает анализ иерархий в одном модуле.
Предотвращение нарушений
Чтобы устранить нарушение данного правило, выполните наследование типа от базового типа, который не так глубоко расположений в иерархии или удалите часть промежуточных базовых типов.
Отключение предупреждений
Отключение предупреждений о нарушении этого правила безопасно; однако из-за этого могут возникнуть трудности с обслуживанием кода. Обратите внимание, что в зависимости от видимости базовых типов устранение нарушений данного правила может привести к критическим изменениям. Например, удаление открытых базовых типов является критическим изменением.
Пример
В следующем примере показан тип, который нарушает данное правило.
Imports System
Namespace MaintainabilityLibrary
Class BaseClass
End Class
Class FirstDerivedClass
Inherits BaseClass
End Class
Class SecondDerivedClass
Inherits FirstDerivedClass
End Class
Class ThirdDerivedClass
Inherits SecondDerivedClass
End Class
Class FourthDerivedClass
Inherits ThirdDerivedClass
End Class
' This class violates the rule.
Class FifthDerivedClass
Inherits FourthDerivedClass
End Class
End Namespace
using System;
namespace MaintainabilityLibrary
{
class BaseClass {}
class FirstDerivedClass : BaseClass {}
class SecondDerivedClass : FirstDerivedClass {}
class ThirdDerivedClass : SecondDerivedClass {}
class FourthDerivedClass : ThirdDerivedClass {}
// This class violates the rule.
class FifthDerivedClass : FourthDerivedClass {}
}