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) // Լիսկովի սկզբունքի խախտում, քանի որ օստրիչը չի կարող թռչել
}
Այս օրինակով, օստրիչը խախտում է Լիսկովի սկզբունքը, քանի որ չի աջակցում հիմնական դասի վարքագիծը։ Կարող եք նախագծել հիերարխիան այնպես, որ ենթասահմանները լիովին աջակցեն հիմնական դասի պայմանագրին, օրինակ՝ բաժանելով թռչող և չթռչող թռչունները տարբեր հիերարխիաներում։