Позначення класу як Sealed
запобігання фальсифікації важливих класів, що може порушити безпеку або вплинути на продуктивність.
Багато разів герметизація класу також має сенс, коли розробляється клас корисності з фіксованою поведінкою, яку ми не хочемо змінювати.
Наприклад, System
простір імен у C#
надає багато класів, які запечатані, наприклад String
. Якби не запечатано, можна було б розширити його функціональність, що може бути небажаним, оскільки це основний тип із заданою функціональністю.
Точно так само structures
в Росії C#
завжди неявно запечатуються. Отже, не можна вивести одну структуру / клас з іншої структури. Причина цього полягає в тому structures
, що вони використовуються для моделювання лише окремих, атомних, визначених користувачем типів даних, які ми не хочемо змінювати.
Іноді, коли ви будуєте ієрархію класів, вам може знадобитися обмежити певну гілку в ланцюжку успадкування на основі вашої моделі домену або бізнес-правил.
Наприклад, a Manager
та PartTimeEmployee
обоє Employee
s, але ви не виконуєте жодної ролі після роботи за сумісництвом у вашій організації. У цьому випадку вам може знадобитися пломба, PartTimeEmployee
щоб запобігти подальшому розгалуженню. З іншого боку, якщо у вас є погодинні або щотижневі працівники, що працюють за сумісництвом, може мати сенс успадкувати їх PartTimeEmployee
.