Sobes.tech
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.