The liskov substitution principle (lsp) (liskov’un yerine geçme prensibi) nedir?

feature-image

Play all audios:

Loading...

THE LISKOV SUBSTITUTION PRINCIPLE (LSP) (LISKOV’UN YERINE GEÇME PRENSIBI) NEDIR? > “Derived classes must be substitutable for their base classes.” >  > ROBERT C. MARTIN Merhaba, bu


yazımda Robert C. Martin’in SOLID tasarım prensipleri ile ilgili, THE LISKOV SUBSTITUTION PRINCIPLE konusunu ele alacağım. Muhtemelen bu konu başlığını araştıran arkadaşlar her yerde bu


tanım cümlesi ile karşılaşıyordur. > Alt sınıflardan oluşan nesnelerin, üst sınıfın nesneleri ile > yer değiştirdikleri zaman, aynı davranışı sergilemesi > gerekmektedir. Design


Patterns konusunda yeni olan arkadaşların, SOLID prensiplerinin tanımlarını başlangıçta anlaması gerçekten zor oluyor , hak veriyorum onlara. Ancak bu konuları örneklerle pekiştirerek, çok


güzel bir şekilde kodlama becerinizi geliştirebilirsiniz. Ben burada C# programlama dili ile bir örnek vereceğim. Hadi başlayalım :) Öncelikle bir Ördek(Duck) sınıfı belirleyeceğiz, ördeğin


bağırma (Quack) özelliğini bu sınıfta yöntem olarak belirteceğiz. Ayrıca birkaç ördek türü de oluşturacağız. (Yeşilbaşlı Ördek, Yaz ördeği, Plastik Ördek) Ördeklerin bağırmaktan ziyade yüzme


özelliği olduğunu da biliyoruz. Gelin şimdi yüzme özelliğini de yöntem olarak ekleyelim. Ördeklerin bir diğer özelliği uçmak yeteneğini de tanımlayalım. Upss! Bir plastik ördek uçamaz.


Şimdi tekrar hatırlayalım , a_lt sınıflardan oluşan nesnelerin, üst sınıfın nesneleri ile yer değiştirdikleri zaman, aynı davranışı sergilemesi gerekmektedir_. ? Burada Plastik Ördek


(RubberDuck) sınıfımız bir istisna atar. Bunu kesinlikle istemiyoruz. Peki bu kodu nasıl düzeltiriz? Gelin şimdi prensibimizi uygulayalım. Burada plastik ördek (RubberDuck) sınıfımız


uçamayacağı için, burada bağırma, yüzme ve uçma gibi özelliklerimizi bir Interface olarak tanımlayacağız. Burada en son aşamada da görüleceği gibi ördeklere interfaceler yardımıyla


yapabilecekleri özellikleri verebildik. Tekrar hatırlatmak gerekirse, _Alt sınıflardan oluşan nesnelerin, üst sınıfın nesneleri ile yer değiştirdikleri zaman, aynı davranışı sergilemesi


gerekmektedir._ bu tanımın neden bu kadar önemli olduğunu bir kez daha anlamışızdır :) Umarım bu konuyu anlatmakta sizlere yardımcı olabilmişimdir. Bir sonraki tasarım kalıpları konusunda


görüşmek dileğiyle :) KAYNAKÇA: * https://www.alexaitken.nz/blog/l-for-liskov-substitution-principle/ *


https://www.udemy.com/course/design-patterns-csharp-dotnet/learn/lecture/6712772?start=0#overview