Bununla ilgili olduğumu söyleyebilirim. OO ve C # hakkında ilk öğrenmeye başladığımda Arayüzleri de alamadım. Bu iyi. Arayüzlerin uygunluğunu takdir etmenizi sağlayacak bir şeye rastlamamız yeterli.
İki yaklaşımı deneyeyim. Ve genellemeler için beni bağışlayın.
Deneyin 1
Anadili İngilizce olduğunuzu söyleyin. İngilizcenin anadili olmadığı başka bir ülkeye gidersiniz. Yardıma ihtiyacın var. Sana yardım edebilecek birine ihtiyacın var.
"Amerika Birleşik Devletleri'nde mi doğdun?" Bu mirastır.
Yoksa, "Hey, İngilizce konuşabiliyor musun" diye mi soruyorsun? Bu arayüz.
Ne yaptığını önemsiyorsan, arayüzlere güvenebilirsin. Ne olduğunu önemsiyorsan, mirasa güveniyorsun.
Mirasa güvenmek tamam. İngilizce bilen, çaydan ve futboldan hoşlanan birine ihtiyacınız varsa, bir İngiliz istemek daha iyi. :)
2 dene
Tamam, başka bir örnek deneyelim.
Farklı veritabanları kullanıyorsunuz ve onlarla çalışmak için soyut sınıflar uygulamanız gerekiyor. Sınıfınızı DB satıcısından bir sınıfa geçireceksiniz.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
Çoklu miras mı diyorsun? Bunu yukarıdaki dava ile deneyin. Yapamazsın Derleyici, hangi Connect yöntemini aramaya çalıştığınızı bilemez.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
Şimdi, en azından C # 'da çalışabileceğimiz bir şey var - arayüzleri açıkça uygulayabiliyoruz.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
Sonuç
Örnekler en iyisi değil, fakat bunun karşısında bir noktaya değiniyor.
İhtiyaç duyduğunuzda sadece arayüzleri “alırsınız”. Onlara kadar senin için olmadığını düşüneceksin.