Aracılığıyla paylaş


Mühürleme

Not

Bu içerik, Çerçeve Tasarım Yönergeleri: Kurallar, Deyimler ve Yeniden Kullanılabilir .NET Kitaplıkları için Desenler, 2. Sürüm'den Pearson Education, Inc.'in izniyle yeniden yazdırılır. Bu baskı 2008'de yayımlandı ve kitap o zamandan beri üçüncü baskıda tamamen revize edilmiştir. Bu sayfadaki bazı bilgiler güncel olmayabilir.

Nesne odaklı çerçevelerin özelliklerinden biri, geliştiricilerin bunları çerçeve tasarımcıları tarafından tahmin edilmeden genişletip özelleştirebilmenizdir. Bu, genişletilebilir tasarımın hem gücü hem de tehlikesidir. Çerçevenizi tasarlarken, bu nedenle, istendiğinde genişletilebilirlik için dikkatli bir şekilde tasarım yapmak ve tehlikeli olduğunda genişletilebilirliği sınırlamak çok önemlidir.

Genişletilebilirliği önleyen güçlü bir mekanizma sızdırmazlıktır. Sınıfı veya tek tek üyeleri mühürleyebilirsiniz. Bir sınıfın mühürlenmesi, kullanıcıların sınıfından devralmalarını engeller. Bir üyenin mühürlenmesi, kullanıcıların belirli bir üyeyi geçersiz kılmasını önler.

❌ Bunu yapmak için iyi bir neden olmadan sınıfları mühürLEMEYİN.

Genişletilebilirlik senaryolarını düşünemediğiniz için sınıfın mühürlenmesi iyi bir neden değildir. Çerçeve kullanıcıları, kolaylık üyeleri ekleme gibi belirgin olmayan çeşitli nedenlerle sınıflardan devralmayı sever. Kullanıcıların bir türden devralmak istemesinin belirgin olmayan nedenlerine ilişkin örnekler için bkz . Korumasız Sınıflar .

Bir sınıfı mühürlemenin iyi nedenleri şunlardır:

  • sınıfı statik bir sınıftır. Bkz. Statik Sınıf Tasarımı.

  • sınıfı, güvenlik duyarlı gizli dizileri devralınan korumalı üyelerde depolar.

  • sınıfı birçok sanal üyeyi devralır ve bunları ayrı ayrı mühürlemenin maliyeti, sınıfı korumasız bırakmanın avantajlarından daha fazla olacaktır.

  • sınıfı, çok hızlı çalışma zamanı arama gerektiren bir özniteliktir. Korumalı öznitelikler korumasız olanlardan biraz daha yüksek performans düzeylerine sahiptir. Bkz. Öznitelikler.

❌ Korumalı türlerde korumalı veya sanal üyeler BILDIRMEYİN.

Tanım gereği, korumalı türler öğesinden devralınamaz. Bu, korumalı türlerdeki korumalı üyelerin çağrılamayacağı ve korumalı türlerdeki sanal yöntemlerin geçersiz kılınamayacağı anlamına gelir.

✔️ Geçersiz kıldığınız üyelerin mühürlediğini DÜŞÜNÜN.

Sanal üyelerin tanıtılmasından kaynaklanan sorunlar (Sanal Üyeler'de ele alınıyor), biraz daha az olsa da geçersiz kılmalar için de geçerlidir. Geçersiz kılmayı mühürleme, devralma hiyerarşisindeki bu noktadan başlayarak sizi bu sorunlardan korur.

Porsiyonlar © 2005, 2009 Microsoft Corporation. Tüm hakları saklıdır.

Pearson Education, Inc. in Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraryes, 2nd Edition by Krzysztof Cwalina and Brad Abrams izniyle yeniden yazdırıldı ve 22 Ekim 2008'de Addison-Wesley Professional tarafından Microsoft Windows Geliştirme Serisi'nin bir parçası olarak yayımlandı.

Ayrıca bkz.