Ben php çalışmak ve arayüzleri kavramı burada bana biraz gereksiz gibi görünüyor. Okuma, ben arayüzler "sözleşme tasarım" bir parçası olduğunu anlıyorum, ama en azından belli bir tür bir tür bir getiri garantisi olmadan, gerçekten herhangi bir sözleşme yoktur. Bu "Biz şu yapmayı kabul:''", okuyan bir sözleşme gibi görünüyor - anlaşmanın hiçbir terimler vardır.
Ben bir nesne bir yöntem olduğunu garanti isterseniz arayüzleri özellikle yararlıdır gibi görünmüyor. Ben bir nesne yok bir yöntemi çağırmak için çalışırsanız, ben bir Ölümcül Hata olsun, ben bu sınıf bu isimde bir yöntem olmadığını oldukça hızlı öğrenmek. Ben akıllı olmak ve sonra arayüz kontrol ve nesne arayüzü sadece ben yaparım (ki doğrudan o nesne denetimi dışında bana herhangi bir daha fazla zaman kazanmak için görünmüyor uygulayan olup olmadığını görerek, önceden bir sınıf bir yöntem olup olmadığını kontrol etmek istiyorsanız sınıf ne olursa olsun) yaptığı veya uygulamak vermedi herhangi arayüzleri bu yöntemi olsaydı neyse görmek için.
Diğer bir deyişle, ben belirli isimler var yöntemleri bir dizi var, sırf o bana herhangi bir behavior garanti etmez. Belirli bir türde bir değişken bir getiri garantili değilim, ben en azından çıkış ne olurdu bazı düşüncelerim var, ve ben çıkıyorum biliyorum çünkü ben, bu arabirimle nesneyi kullanan kod yazabilirsiniz bunun. Bir dize döndürürse, ben sonra bir dize çıkışı ile uğraşıyorum en az kesinlik kodlama devam edebilirsiniz. Yani bir dönüş türü belirtilen azından bazı davranış garanti ediyorum. Ne için arayüzleri davranış kısmı garanti, ya da hayır mı?
Aklıma tek şey, ben kod yazıyorum, bunun bir post-it daha sonra bu sınıfı yazarken bazı yöntemleri oluşturmak için emin olmak için kendime not olarak hizmet olmasıdır. Daha ben kod yazıyorum zaman için iskele gibi görünüyor; Ben aslında bunu kullanıyorum anda pek fayda görmüyorum. Yani ben bunları yazıyorum zaman daha sınıflar oluşturarak olduğumda bana standart tutmak için daha fazla bulunuyor. Bu fayda, gerçekten sözleşme tasarım konseptinde çekilecek görünmüyor.
Aslında PHP gibi dinamik / gevşek yazdığınız dilde bir arayüz kullanarak ne fayda (lar) alabilirim? Onlar büyük, ya da daha güçlü OO dilleri uygulamak şeydir, bu yüzden PHP de bunu uygular?