Soyutlamalar (Soyut Türler ve Arabirimler)
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.
Soyutlama, bir sözleşmeyi açıklayan ancak sözleşmenin tam uygulamasını sağlamayan bir türdür. Soyutlamalar genellikle soyut sınıflar veya arabirimler olarak uygulanır ve sözleşmeyi uygulayan türlerin gerekli semantiğini açıklayan iyi tanımlanmış bir başvuru belgeleri kümesiyle birlikte gelir. .NET Framework'teki en önemli soyutlamalardan bazıları , IEnumerable<T>ve Object'tirStream.
Bir soyutlama sözleşmesini destekleyen somut bir tür uygulayarak ve bu somut türü soyutlama kullanan (üzerinde çalışan) çerçeve API'leri ile kullanarak çerçeveleri genişletebilirsiniz.
Zaman testine dayanabilen anlamlı ve kullanışlı bir soyutlama tasarlamak çok zordur. Asıl zorluk, doğru üye kümesini almaktır, artık ve daha az değil. Soyutlama çok fazla üyeye sahipse, uygulanması zor ve hatta imkansız hale gelir. Söz verilen işlevsellik için çok az üyesi varsa, birçok ilginç senaryoda işe yaramaz hale gelir.
Bir çerçevedeki çok fazla soyutlama, çerçevenin kullanılabilirliğini de olumsuz etkiler. Soyutlama üzerinde çalışan somut uygulamaların ve API'lerin daha büyük resmine nasıl uyduğunu anlamadan soyutlamayı anlamak genellikle oldukça zordur. Ayrıca, soyutlamaların ve üyelerinin adları mutlaka soyut olur ve bu da genellikle kullanımlarının daha geniş bağlamını anlamadan onları şifreli ve ulaşılamaz hale getirir.
Bununla birlikte, soyutlamalar diğer genişletilebilirlik mekanizmalarının sıklıkla eşleşemeyeceği son derece güçlü genişletilebilirlik sağlar. Eklentiler, denetimin ters çevrilmesi (IoC), işlem hatları vb. gibi birçok mimari desenin temelini oluştururlar. Çerçevelerin test edilebilirliği için de son derece önemlidir. İyi soyutlamalar, birim testi amacıyla yoğun bağımlılıkları saptamayı mümkün hale getirir. Özetle soyutlamalar, modern nesne odaklı çerçevelerin aranan zenginliğinden sorumludur.
❌ Soyutlamaları kullanan çeşitli somut uygulamalar ve API'ler geliştirilerek test edilmedikleri sürece özet sağlamaYIN.
✔️ SOYUTLAMA tasarlarken bir soyut sınıf ile arabirim arasında dikkatli bir seçim yapın.
✔️ Soyutlamaların somut uygulamaları için başvuru testleri sağlamayı GÖZ ÖNÜNDE BULUNDURUN. Bu tür testler, kullanıcıların uygulamalarının sözleşmeyi doğru uygulayıp uygulamadığını test etmelerine izin vermelidir.
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ı.