"Bir uygulama yerine bir arayüze programlama" terimi ile çok karşılaştım ve sanırım ne anlama geldiğini anlıyorum. Ancak bunun faydalarını ve olası uygulamalarını anladığımdan emin olmak istiyorum.
"Arayüze programlama", mümkün olduğunda, somut bir uygulamaya atıfta bulunmak yerine, daha soyut bir sınıf seviyesine (bir arayüz, soyut sınıf veya bazen bir tür üst sınıf) atıfta bulunulması gerektiği anlamına gelir.
Java'da yaygın bir örnek kullanmaktır:
List myList = new ArrayList();
yerine ArrayList myList = new ArrayList();
.
Bununla ilgili iki sorum var:
Bu yaklaşımın temel faydalarını anladığımdan emin olmak istiyorum. Faydaların çoğunlukla esneklik olduğunu düşünüyorum. Bir nesneyi somut bir uygulamadan ziyade daha yüksek bir referans olarak ilan etmek, geliştirme döngüsü boyunca ve kod boyunca daha fazla esneklik ve sürdürülebilirlik sağlar. Bu doğru mu? Esneklik ana yararı mı?
'Bir arabirime programlama' için daha fazla yol var mı? Yoksa "somut bir uygulamadan ziyade bir arayüz olarak bir değişken ilan etmek" bu konseptin tek uygulaması mıdır?
Ben ediyorum Java yapı Arayüz bahsetmiyoruz . OO prensibinden "bir arayüze değil bir uygulamaya programlama" dan bahsediyorum. Bu prensipte dünya "arayüzü", bir sınıfın herhangi bir " süper tipine" ( bir arayüze, soyut bir sınıfa veya daha somut alt sınıflara göre daha soyut ve daha az somut olan basit bir üst sınıfa) karşılık gelir.