Sobes.tech
Junior — Middle

SOLID'deki L prensibinin geliştirme pratiğinde nasıl uygulandığını gösterebilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

SOLID'in L ilkesi, Liskov Yerine Koyma İlkesi'dir. Bu ilke, alt sınıf nesnelerinin, temel sınıf nesneleriyle değiştirilebilir olması gerektiğini ve bu değişikliğin programın doğruluğunu bozmadığını belirtir.

Kotlin'de örnek:

open class Bird {
    open fun fly() {
        println("Kuş uçuyor")
    }
}

class Sparrow : Bird() {
    override fun fly() {
        println("Serçe uçuyor")
    }
}

class Ostrich : Bird() {
    override fun fly() {
        throw UnsupportedOperationException("Devekuşu uçamaz")
    }
}

fun makeBirdFly(bird: Bird) {
    bird.fly()
}

fun main() {
    val sparrow = Sparrow()
    val ostrich = Ostrich()

    makeBirdFly(sparrow)  // Doğru çalışır
    makeBirdFly(ostrich)  // L ilkesi ihlali, çünkü devekuşu uçamaz
}

Bu örnekte, Ostrich sınıfı, Bird temel sınıfının davranışını desteklemediği için L ilkesi ihlal eder. İlkeleri korumak için, alt sınıfların temel sınıfın sözleşmesini tam olarak destekleyecek şekilde tasarlanması gerekir, örneğin, uçan ve uçmayan kuşların farklı hiyerarşilere ayrılması gibi.