Junior — Middle
Kas sa saad näidata, kuidas SOLID-i L põhimõtet arenduses rakendatakse?
sobes.tech AI
Vastus AI-lt
SOLID-i L printsiiv on Liskovi asendamise printsiip. See ütleb, et alamsüsteemide objektid peaksid olema asendatavad põhiklassi objektidega ilma, et see mõjutaks programmi õigsust.
Näide Kotlinis:
open class Bird {
open fun fly() {
println("Lind lendab")
}
}
class Sparrow : Bird() {
override fun fly() {
println("Varblane lendab")
}
}
class Ostrich : Bird() {
override fun fly() {
throw UnsupportedOperationException("Struts ei saa lennata")
}
}
fun makeBirdFly(bird: Bird) {
bird.fly()
}
fun main() {
val sparrow = Sparrow()
val ostrich = Ostrich()
makeBirdFly(sparrow) // Töötab õigesti
makeBirdFly(ostrich) // L printsiivi rikkumine, sest struts ei saa lennata
}
Selles näites rikub Ostrich klass L printsiivi, kuna see ei toeta põhiklassi Bird käitumist. Printsiivi järgimiseks tuleb disainida hierarhia nii, et alamklassid toetaksid täielikult põhiklassi lepingut, näiteks eraldades lendavad ja mitte-lendavad linnud erinevatesse hierarhiatesse.