Поделиться через


Незапечатанные классы

Примечание.

Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.

Запечатанные классы не могут наследоваться. Они препятствуют расширяемости. Классы, которые могут быть унаследованы, напротив, называются незапечатанными.

✔️ РАССМОТРИТЕ возможность использования незапечатанных классов без добавленных виртуальных или защищенных элементов. Это отличный способ предоставить недорогую, но довольно ценную возможность расширяемости для платформы.

Разработчикам часто требуется наследовать незапечатанные классы, чтобы добавить удобные элементы, такие как пользовательские конструкторы, новые методы или перегрузки методов. Например, System.Messaging.MessageQueue неуправляемый и таким образом позволяет пользователям создавать пользовательские очереди, которые по умолчанию относятся к определенному пути очереди или добавлять пользовательские методы, упрощающие API для определенных сценариев.

В большинстве языков программирования классы не запечатаны по умолчанию. Это рекомендуемое значение по умолчанию для большинства классов в платформах. Расширяемость, обеспечиваемая незапечатанными типами, высоко ценится пользователями платформы. Она довольно недорогая из-за сравнительно низких затрат на тестирование, связанных с незапечатанными типами.

Фрагменты: © Корпорация Майкрософт (Microsoft Corporation), 2005, 2009. Все права защищены.

Перепечатано с разрешения Pearson Education, Inc. из книги Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание), авторы: Кржиштоф Цвалина (Krzysztof Cwalina) и Брэд Абрамс (Brad Abrams). Книга опубликована 22 октября 2008 г. издательством Addison-Wesley Professional в рамках серии, посвященной разработке для Microsoft Windows.

См. также