Đánh dấu một lớp để Sealed
ngăn chặn việc giả mạo các lớp quan trọng có thể ảnh hưởng đến bảo mật hoặc ảnh hưởng đến hiệu suất.
Nhiều khi, việc niêm phong một lớp cũng có ý nghĩa khi một lớp đang thiết kế một lớp tiện ích với hành vi cố định, mà chúng ta không muốn thay đổi.
Ví dụ, System
không gian tên trong C#
cung cấp nhiều lớp được niêm phong, chẳng hạn như String
. Nếu không được niêm phong, có thể mở rộng chức năng của nó, điều này có thể không mong muốn, vì đây là loại cơ bản với chức năng nhất định.
Tương tự, structures
trong C#
luôn luôn được niêm phong ngầm. Do đó người ta không thể lấy một cấu trúc / lớp từ cấu trúc khác. Lý do cho điều này là chỉ structures
được sử dụng để lập mô hình các kiểu dữ liệu độc lập, nguyên tử, do người dùng xác định , mà chúng tôi không muốn sửa đổi.
Đôi khi, khi bạn đang xây dựng cấu trúc phân cấp lớp, bạn có thể muốn giới hạn một nhánh nhất định trong chuỗi kế thừa, dựa trên mô hình miền hoặc quy tắc kinh doanh của bạn.
Ví dụ: a Manager
và PartTimeEmployee
đều là Employee
s, nhưng bạn không có bất kỳ vai trò nào sau nhân viên bán thời gian trong tổ chức của mình. Trong trường hợp này, bạn có thể muốn niêm phong PartTimeEmployee
để ngăn phân nhánh thêm. Mặt khác, nếu bạn có nhân viên bán thời gian hàng giờ hoặc hàng tuần, bạn nên kế thừa họ từ đó PartTimeEmployee
.