Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.
❌ НЕ определяйте открытые или защищенные внутренние конструкторы в абстрактных типах.
Конструкторы должны быть доступными только в случае, если пользователям потребуется создать экземпляры типа. Так как нельзя создавать экземпляры абстрактного типа, абстрактный тип с открытым конструктором неправильно разработан и вводит в заблуждение для пользователей.
✔️ Do определяет защищенный или внутренний конструктор в абстрактных классах.
Защищенный конструктор более распространен и просто позволяет базовому классу выполнять собственную инициализацию при создании подтипов.
Внутренний конструктор можно использовать для ограничения конкретных реализаций абстрактного класса сборкой, определяющей класс.
✔️ Обязательно предоставьте по крайней мере один конкретный тип, наследующий от каждого абстрактного класса, который вы предоставляете.
Это помогает проверить структуру абстрактного класса. Например, System.IO.FileStream это реализация абстрактного System.IO.Stream класса.
© Часть 2005, 2009 Корпорация Майкрософт. Все права защищены.
Перепечатан с разрешения Pearson Education, Inc. из Руководство по проектированию: Соглашения, идиомы и шаблоны для повторного использования библиотек .NET, 2-е издание Кшиштоф Чвалина и Брэд Абрамс, опубликованное 22 октября 2008 года Addison-Wesley Профессиональный в рамках серии разработки Microsoft Windows.