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.