Not: Ben interface'i kalıtım konusunda "arayüz" diye kullanmayı seviyorum. "arabirim"i de "kullanıcı arabirimi" gibi programın dış yüzeyiyle ilgili olarak algılıyorum.
Nesne yönelimli programlamada doğru kalıtımın büyük bir çoğunluğu arayüz kalıtımıdır. Örneğin Şekil sınıfının çiz() diye bir üyesi olduğu duyurulur, ve kullanıcılar Şekil türünden nesneleri 'nesne.çiz()' diye kullanabilirler. Gerçek türlerini bilmeden...
Benim de karşıma çoğunlukla böyle sıradüzenler çıkar (basitlik ön planda! :) ): Arayüz sınıfı, ve onu gerçekleştiren alt sınıflar. Çok temiz bir tasarımdır... Bazen bir kaç alt sınıfın ortak özellikleri olur; o zamanda bu ortak davranış aradaki başka bir katmana verilebilir. Ama, o katman ya hâlâ "arayüz" olarak kalmalıdır, ya da bir şekilde gizlenmelidir.
Yani en temizi, sıradüzenin en tepesinde bir arayüz, ve olabildiğince sığ olan kalıtımın alt tarafında da gerçekleştirme sınıfları. Her zaman bu kadar basit olmaz, ama çoğu zaman bu kadar basit olur. :)
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]