День двести сорок четвёртый. #BestPractices
Разработка для Расширяемости
Защищённые Члены
Защищенные (protected) члены доступны в пределах своего класса или из экземпляров производного класса. Защищённые члены сами по себе не обеспечивают расширяемости, однако они усиливают расширяемость через подклассы. Их можно использовать для предоставления расширенных возможностей без ненужного усложнения основного публичного интерфейса.
Разработчики фреймворков должны быть осторожны с защищёнными членами, потому что название «защищённый» может дать ложное чувство безопасности. Кто угодно может создать подкласс незапечатанного класса и получить доступ к защищённым членам, поэтому все методы защитного программирования, которые используются для открытых членов, применимы к защищённым членам.
⚠️ РАССМОТРИТЕ использование защищённых членов для расширенной настройки типов.
❗️ НЕОБХОДИМО относиться к защищённым членам в открытых классах как к открытым при анализе безопасности, совместимости или документировании. Кто угодно может наследовать от класса и получить доступ к защищённым членам.
Источник: https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/
Разработка для Расширяемости
Защищённые Члены
Защищенные (protected) члены доступны в пределах своего класса или из экземпляров производного класса. Защищённые члены сами по себе не обеспечивают расширяемости, однако они усиливают расширяемость через подклассы. Их можно использовать для предоставления расширенных возможностей без ненужного усложнения основного публичного интерфейса.
Разработчики фреймворков должны быть осторожны с защищёнными членами, потому что название «защищённый» может дать ложное чувство безопасности. Кто угодно может создать подкласс незапечатанного класса и получить доступ к защищённым членам, поэтому все методы защитного программирования, которые используются для открытых членов, применимы к защищённым членам.
⚠️ РАССМОТРИТЕ использование защищённых членов для расширенной настройки типов.
❗️ НЕОБХОДИМО относиться к защищённым членам в открытых классах как к открытым при анализе безопасности, совместимости или документировании. Кто угодно может наследовать от класса и получить доступ к защищённым членам.
Источник: https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/