kısaca bahsetmek gerekirse anlamı şudur;
"alt sınıflardan oluşan nesnelerin, üst sınıfın nesneleri ile yer değiştirdikleri zaman, aynı davranışı sergilemesi gerekmektedir.".

böyle dedikten sonra bir kulaktan girip çıkıyor mu? haydi o zaman örnekler üzerinden anlatalım.

kullanıcı tarafından yüklenmiş görsel

gördüğünüz gibi bir tane interface tanımladık ve insanların yapması gereken şeyleri tanımladık. insanlar yer, içer, uyur, cinsellik yapar.

şimdi buraya kadar çok güzel ama şimdi şöyle bir şey yapalım.

kullanıcı tarafından yüklenmiş görsel

burada şişme bebek sınıfımız yemek yemeyeceği, içemeyeceği, uyuyamadığı için, burada yemek yeme, su içme ve uyuma gibi özelliklerimizi bir ınterface olarak tanımlayacağız.

yani "alt sınıflardan oluşan nesnelerin, üst sınıfın nesneleri ile yer değiştirdikleri zaman, aynı davranışı sergilemesi gerekmektedir.".

kullanıcı tarafından yüklenmiş görsel

evet gördüğünüz gibi liskov substitution prensibine uyan bir tasarım yaptık. artık şişme bebeğimiz göze batmıyor.

not: aslında şişme bebek ilk baş çocuk olarak tasarlanmıştı ama yazarlar tarafından dikkat çekmesi için bunu daha doğru buldum. (yemek ye, su iç, uyu olarak tasarlandı tabi.)

evet, kafa sözlük yazarları. bugünkü konu anlatımız baya garip bir örnek oldu. kafalarımızda soru işareti kalmadığını düşünüyorum. kendinize iyi ve sağlıcakla bakın.

edit: şimdi şöyle sorular gelebilir;

bunun ınterface segregation ile farkı ne ki?

cevap : aslında mantık olarak aynıdır ama ;

liskov substitution : classın implement ettiği fonksiyonların işlevlerini yerine getirmelidir. yani kullanılmayacak şeyleri ayırmalısınız. bu yüzden genelde bu prensibe uymayan objelerin içi "throw notimplementedexception" olarak kalır. sen ne kadar zorlarsan zorla şişme bebek yemek yiyemez. yani içi boş kalır. ağzından tıksan bile yemek yeme işlevini yapamaz.

ınterface segregation : teknik olarak şişme bebeği uyutur gibi yapabilirsiniz. (zorlama kaçıyor değil mi?) işte burada interface segregation ihlali oluyor. zorlama olarak kullanılamayacak şeyler var. zorlama olarak uyumaya bağımlı yapıyorsunuz. gerek var mı? gerçekten şişme bebekler uyur mu?

aslında solid prensipleri birbirlerine çok benzer. mantığı bir kere kurdunuz mu, sizden iyisi yok.

yani aslında ınternet'te geçen kare ve dikdörtgen örneği bunun için çok uygun. dikdörtgeni iki kenarı ile hesaplayabilirsiniz ama kare için tek kenar yeterli. karenin iki kenarını alıyorsanız orada bir sorun vardır. yani tanımlamalarını çok düzgün yapmalısınız. dikdörtgen ile kare aynı şey değildir.

sen neden bunun üzerine anlatmadın? sorusunun cevabı çok basit, özgün olmak istedim.
devamını gör...

bu başlığa tanım girmek için olabilirsiniz.

zaten üye iseniz giriş yapabilirsiniz.

normal sözlük'ü kullanarak 3. parti dahil tarayıcı çerezlerinin kullanımına izin vermektesiniz. Daha detaylı bilgi için çerez ve gizlilik politikamıza bakabilirsiniz.

online yazar listesini görmek için lütfen giriş yapın.
zaman tüneli köftehor rehberi portakal normal radyo kütüphane kulüpler renk modu online yazarlar puan tablosu yönetim kadrosu istatistikler iletişim