Junior — Middle
SOLID-də L prinsipinin inkişafda necə tətbiq olunduğunu göstərə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
SOLID-in L prinsipi Liskov-un dəyişdirilmə prinsipidir. Bu prinsip deyir ki, alt sinif obyektləri, əsas sinif obyektləri ilə əvəz oluna bilməli və proqramın düzgünlüyü pozulmamalıdır.
Kotlin-də nümunə:
open class Bird {
open fun fly() {
println("Quş uçur")
}
}
class Sparrow : Bird() {
override fun fly() {
println("Qarğa uçur")
}
}
class Ostrich : Bird() {
override fun fly() {
throw UnsupportedOperationException("Ostrich uça bilməz")
}
}
fun makeBirdFly(bird: Bird) {
bird.fly()
}
fun main() {
val sparrow = Sparrow()
val ostrich = Ostrich()
makeBirdFly(sparrow) // Düzgün işləyir
makeBirdFly(ostrich) // L prinsipinin pozulması, çünki ostrich uça bilməz
}
Bu nümunədə, Ostrich sinfi, Bird əsas sinfinin davranışını dəstəkləmir və L prinsipini pozur. Prinsipi qorumaq üçün, irsi quruluş belə dizayn edilməlidir ki, alt siniflər, əsas sinfin müqaviləsini tam şəkildə dəstəkləsin, məsələn, uçan və uçmayan quşları müxtəlif ierarxiyalarda ayırmaq.