Sobes.tech
Junior — Middle

Կարող եք ցույց տալ, թե ինչպես է կիրառվում SOLID-ի L սկզբունքը ծրագրավորման պրակտիկայում:

sobes.tech AI

Պատասխան AI-ից

SOLID-ի L սկզբունքը Լիսկովի փոխարինման սկզբունք է։ Այն ասում է, որ ենթասահմանների օբյեկտները պետք է փոխարինելի լինեն հիմնական դասի օբյեկտների հետ՝ առանց ծրագրի ճիշտությունը խախտելու։

Kotlin-ում օրինակ՝

open class Bird {
    open fun fly() {
        println("Թռչունը թռչում է")
    }
}

class Sparrow : Bird() {
    override fun fly() {
        println("Կաքավը թռչում է")
    }
}

class Ostrich : Bird() {
    override fun fly() {
        throw UnsupportedOperationException("Օստրիչը չի կարող թռչել")
    }
}

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

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

    makeBirdFly(sparrow)  // Կատարում է ճիշտ
    makeBirdFly(ostrich)  // Լիսկովի սկզբունքի խախտում, քանի որ օստրիչը չի կարող թռչել
}

Այս օրինակով, օստրիչը խախտում է Լիսկովի սկզբունքը, քանի որ չի աջակցում հիմնական դասի վարքագիծը։ Կարող եք նախագծել հիերարխիան այնպես, որ ենթասահմանները լիովին աջակցեն հիմնական դասի պայմանագրին, օրինակ՝ բաժանելով թռչող և չթռչող թռչունները տարբեր հիերարխիաներում։