Bir sınıfı olarak işaretleme Sealed
, güvenliği tehlikeye atabilecek veya performansı etkileyebilecek önemli sınıfların değiştirilmesini önler.
Çoğu zaman, bir sınıfı mühürlemek, değiştirmek istemediğimiz sabit davranışlı bir fayda sınıfı tasarlarken de anlamlıdır.
Örneğin, içindeki System
ad alanı C#
mühürlenmiş birçok sınıf sağlar, örneğin String
. Mühürlenmemişse, belirli bir işlevselliğe sahip temel bir tür olduğu için istenmeyen bir durum olabilecek işlevselliğini genişletmek mümkün olacaktır.
Benzer şekilde, structures
içinde C#
her zaman örtük olarak mühürlenir. Dolayısıyla, bir yapı / sınıf başka bir yapıdan türetilemez. Bunun nedeni , değiştirmek istemediğimiz ,structures
yalnızca bağımsız, atomik, kullanıcı tanımlı veri türlerini modellemek için kullanılmasıdır .
Bazen, sınıf hiyerarşileri oluştururken, etki alanı modelinize veya iş kurallarınıza göre devralma zincirindeki belirli bir dalı sınırlamak isteyebilirsiniz.
Örneğin, a Manager
ve PartTimeEmployee
her ikisi de Employee
s'dir, ancak kuruluşunuzda yarı zamanlı çalışanlardan sonra herhangi bir rolünüz yoktur. Bu durumda, PartTimeEmployee
daha fazla dallanmayı önlemek için mühürlemek isteyebilirsiniz . Öte yandan, saatlik veya haftalık yarı zamanlı çalışanlarınız varsa, onları miras almak mantıklı olabilir PartTimeEmployee
.