Share via


Arabirim Tasarımı

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.

Çoğu API, sınıflar ve yapılar kullanılarak en iyi şekilde modellense de, arabirimlerin daha uygun olduğu veya tek seçenek olduğu durumlar vardır.

CLR birden çok devralmayı desteklemez (örneğin, CLR sınıfları birden fazla temel sınıftan devralamaz), ancak türlerin temel sınıftan devralmaya ek olarak bir veya daha fazla arabirim uygulamasına izin verir. Bu nedenle, arabirimler genellikle birden çok devralma etkisini elde etmek için kullanılır. Örneğin, IDisposable türlerin katılmak istedikleri diğer devralma hiyerarşilerinden bağımsız olarak kullanımdan kaldırılabilirliği desteklemesine olanak tanıyan bir arabirimdir.

Bir arabirim tanımlamanın uygun olduğu diğer durum, bazı değer türleri de dahil olmak üzere çeşitli türler tarafından desteklenecek ortak bir arabirim oluşturmaktır. Değer türleri dışındaki ValueTypetürlerden devralamaz, ancak arabirimleri uygulayabilir, bu nedenle ortak bir temel tür sağlamak için tek seçenek arabirim kullanmaktır.

✔️ Değer türleri içeren bir tür kümesi tarafından desteklenecek bazı ortak API'lere ihtiyacınız varsa BIR arabirim tanımlayın.

✔️ İşlevselliğini başka bir türden devralan türlerde desteklemeniz gerekiyorsa bir arabirim tanımlamayı göz önünde bulundurun.

❌ İşaretçi arabirimleri (üye içermeyen arabirimler) kullanmaktan KAÇıNıN.

Bir sınıfı belirli bir özelliğe (işaretçi) sahip olarak işaretlemeniz gerekiyorsa, genel olarak arabirim yerine özel bir öznitelik kullanın.

✔️ DO, bir arabirimin uygulaması olan en az bir tür sağlar.

Bunu yapmak, arabirimin tasarımını doğrulamaya yardımcı olur. Örneğin, List<T> arabiriminin IList<T> bir uygulamasıdır.

✔️ DO, tanımladığınız her arabirimi kullanan en az bir API sağlar (arabirimi parametre olarak alan bir yöntem veya arabirim olarak yazılan bir özellik).

Bunu yapmak, arabirim tasarımını doğrulamaya yardımcı olur. Örneğin, List<T>.Sort arabirimini tüketir System.Collections.Generic.IComparer<T> .

❌ Daha önce gönderilen bir arabirime üye EKLEMEYİN.

Bunu yapmak arabirimin uygulamalarını bozar. Sürüm oluşturma sorunlarını önlemek için yeni bir arabirim oluşturmanız gerekir.

Bu yönergelerde açıklanan durumlar dışında, genel olarak yönetilen kod yeniden kullanılabilir kitaplıkları tasarlamada arabirimler yerine sınıfları seçmelisiniz.

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.