

Php Abstract Ve Interface Yapısıyla İlgili Kafama Takılan Bir Nokta.
-
Şimdi Interface açtığımızda bulunması gerekli gördüğümüz fonksiyon listesini yaratıp Class'a implement ediyoruz buraya kadar sorun yok fakat bunu yapmak yerine neden abstract bir main class oluşturup hedef class'a extend etmiyoruz (nasıl olsa olmasını istediğimiz fonksiyonları abstract fonksiyonun içine de yazabiliriz otomatikman hedef class'a include olur) bu noktada interface oluşturmamızın bize faydası/zararı nedir ?
-
Bir kere uplayım belki fikir beyan eden çıkar :D
-
PHP'de interfaceler hakkında bir bilgim yok, lakin abstract class ile farkı şu, herhangi bir metodu override etmeyi atlamana karşı compile ederken seni uyarır. Yani bir interface'i implement ettiğin zaman, o interface'in tüm methodlarını override etmen gerekir.
-
Ashitaka bunu yazdı:
-----------------------------
PHP'de interfaceler hakkında bir bilgim yok, lakin abstract class ile farkı şu, herhangi bir metodu override etmeyi atlamana karşı compile ederken seni uyarır. Yani bir interface'i implement ettiğin zaman, o interface'in tüm methodlarını override etmen gerekir.
-----------------------------Heh işte benimde kafama takılan o methodları override edene kadar bitane abstract class yapıp onu extend etsek daha kolay değil mi.Yani her class için ayrı ayrı method yazacağımıza bi tane abstracta atayıp o abstractı diğerlerine extend etsek o methodlar onlardada otomatikman dahil olcak.
-
Interface çok kişi programlama yaparken kolaylık sağlar
örnepin proje şefi sadece absrack clası yazar alttaki elemanlar fonksiyonların içini doldurur
bu sayede belirli bir standarda göre program yazılmış olur
-
sokoban bunu yazdı:
-----------------------------
Ashitaka bunu yazdı:
-----------------------------
PHP'de interfaceler hakkında bir bilgim yok, lakin abstract class ile farkı şu, herhangi bir metodu override etmeyi atlamana karşı compile ederken seni uyarır. Yani bir interface'i implement ettiğin zaman, o interface'in tüm methodlarını override etmen gerekir.
-----------------------------Heh işte benimde kafama takılan o methodları override edene kadar bitane abstract class yapıp onu extend etsek daha kolay değil mi.Yani her class için ayrı ayrı method yazacağımıza bi tane abstracta atayıp o abstractı diğerlerine extend etsek o methodlar onlardada otomatikman dahil olcak.
-----------------------------Hocam, hepsi ortak kullanıyorsa abstract class tabiki mantıklı, ama method içerikleri aynı olmayan şeylerde interface compile edilirken hata vermesinden dolayı daha faydalı sanıyorum.
-
wm-t bunu yazdı:
-----------------------------
Interface çok kişi programlama yaparken kolaylık sağlar
örnepin proje şefi sadece absrack clası yazar alttaki elemanlar fonksiyonların içini doldurur
bu sayede belirli bir standarda göre program yazılmış olur
-----------------------------He interface sadece proje kodlanış standardını korumakla yükümlü anladım hacı şimdi sağol :F
-
bu ve benzeri seyler yuzunden javadan php ye gecince deliriyorum ben :| function overloading bile yok lan :| argumanlari sayiyorum
-
sokoban bunu yazdı:
-----------------------------
Ashitaka bunu yazdı:
-----------------------------
PHP'de interfaceler hakkında bir bilgim yok, lakin abstract class ile farkı şu, herhangi bir metodu override etmeyi atlamana karşı compile ederken seni uyarır. Yani bir interface'i implement ettiğin zaman, o interface'in tüm methodlarını override etmen gerekir.
-----------------------------Heh işte benimde kafama takılan o methodları override edene kadar bitane abstract class yapıp onu extend etsek daha kolay değil mi.Yani her class için ayrı ayrı method yazacağımıza bi tane abstracta atayıp o abstractı diğerlerine extend etsek o methodlar onlardada otomatikman dahil olcak.
-----------------------------Hocam şöyle düşün..
Bi tane interface'in var Hayvan isimli..
içinde de yürüme fonksiyonu var. Bu fonksiyon bu class tan türetilmiş, öküz koyun keçi ördek gibi classlarda farklı şekilde implement edilecektir. Yani fonksiyon imzası aynı fakat içeriği farklı olabilir. Bize bu noktada güzellik sağlıyo bu sistem..
Mesela javada bütün class lar Object ten türetilir. Object'in toString diye bi metodu vardır, bu metod bütün classlarda bulunur. Ve farklı şekillerde implement edilir..
-
NmC bunu yazdı:
-----------------------------
sokoban bunu yazdı:
-----------------------------
Ashitaka bunu yazdı:
-----------------------------
PHP'de interfaceler hakkında bir bilgim yok, lakin abstract class ile farkı şu, herhangi bir metodu override etmeyi atlamana karşı compile ederken seni uyarır. Yani bir interface'i implement ettiğin zaman, o interface'in tüm methodlarını override etmen gerekir.
-----------------------------Heh işte benimde kafama takılan o methodları override edene kadar bitane abstract class yapıp onu extend etsek daha kolay değil mi.Yani her class için ayrı ayrı method yazacağımıza bi tane abstracta atayıp o abstractı diğerlerine extend etsek o methodlar onlardada otomatikman dahil olcak.
-----------------------------Hocam şöyle düşün..
Bi tane interface'in var Hayvan isimli..
içinde de yürüme fonksiyonu var. Bu fonksiyon bu class tan türetilmiş, öküz koyun keçi ördek gibi classlarda farklı şekilde implement edilecektir. Yani fonksiyon imzası aynı fakat içeriği farklı olabilir. Bize bu noktada güzellik sağlıyo bu sistem..
Mesela javada bütün class lar Object ten türetilir. Object'in toString diye bi metodu vardır, bu metod bütün classlarda bulunur. Ve farklı şekillerde implement edilir..
-----------------------------Bu örnek baya açıklayıcı oldu hacı şimdi tam anlamıyla çaktım köfteyi :D cevap veren herkese teşekkürler.