Soyutlama Uygulamak için Temel Sınıflar
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.
Açıkça belirtmek gerekirse, bir sınıf, başka bir sınıf ondan türetildiğinde temel sınıf haline gelir. Ancak bu bölümün amacı doğrultusunda temel sınıf, temel olarak ortak bir soyutlama sağlamak veya diğer sınıfların devralma olsa da bazı varsayılan uygulamaları yeniden kullanmak üzere tasarlanmış bir sınıftır. Temel sınıflar genellikle devralma hiyerarşilerinin ortasında, bir hiyerarşinin kökündeki soyutlama ile alttaki birkaç özel uygulama arasında yer alır.
Soyutlamalar uygulamak için uygulama yardımcıları olarak görev yaparlar. Örneğin, Framework'ün sıralı öğe koleksiyonlarına yönelik soyutlamalarından biri arabirimdir IList<T> . IList<T> Uygulama önemsiz değildir ve bu nedenle Framework, özel koleksiyonları uygulamak için yardımcı olarak hizmet veren ve KeyedCollection<TKey,TItem>gibi Collection<T> çeşitli temel sınıflar sağlar.
Temel sınıflar genellikle kendi başlarına soyutlama görevi görmek için uygun değildir, çünkü çok fazla uygulama içerme eğilimindedirler. Örneğin, temel sınıf, Collection<T>
kendi alanlarından birinde bellekte depolanan öğelerden oluşan bir koleksiyon olması ve genel olmayan IList
arabirim (nongeneric koleksiyonlarla daha iyi tümleştirmek için) uygulamasıyla ilgili çok sayıda uygulama içerir.
Daha önce açıklandığı gibi, temel sınıflar soyutlamalar uygulaması gereken kullanıcılar için çok değerli yardım sağlayabilir, ancak aynı zamanda önemli bir sorumluluk oluşturabilirler. Yüzey alanı ekler ve devralma hiyerarşilerinin derinliğini artırır ve bu nedenle çerçeveyi kavramsal olarak karmaşıklaştırır. Bu nedenle, temel sınıfların yalnızca çerçevenin kullanıcılarına önemli bir değer sağlaması durumunda kullanılması gerekir. Yalnızca çerçevenin uygulayıcılarına değer sağlıyorlarsa önlenmelidir. Bu durumda, temel sınıftan devralma yerine iç uygulamaya temsilci seçme önemle dikkate alınmalıdır.
✔️ Herhangi bir soyut üye içermese bile temel sınıfları soyut yapmayı göz önünde bulundurun. Bu, kullanıcılara sınıfın yalnızca devralınacak şekilde tasarlandığını açıkça bildirir.
✔️ Temel sınıfları ana hat senaryo türlerinden ayrı bir ad alanına yerleştirmeyi göz önünde bulundurun. Tanım gereği, temel sınıflar gelişmiş genişletilebilirlik senaryolarına yöneliktir ve bu nedenle kullanıcıların çoğu için ilginç değildir.
❌ Sınıfın genel API'lerde kullanılması amaçlanıyorsa temel sınıfları "Temel" soneki ile adlandırmaKTAN KAÇıNıN.
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ı.