Junior — Middle
Կարող եք տալ օրինակ, թե ինչպես է Լիսկովի փոխարինման սկզբունքը կիրառվում ծրագրավորման պրակտիկայում?
sobes.tech AI
Պատասխան AI-ից
Լիսկովի փոխարինման սկզբունքը (Liskov Substitution Principle, LSP) ասում է, որ ենթասահմանների օբյեկտները պետք է փոխարինելի լինեն հիմնական դասի օբյեկտների հետ՝ առանց ծրագրի ճիշտ գործելու խախտման:
Օրինակ JavaScript-ում (Node.js):
class Bird {
fly() {
console.log('Թռչունը թռչում է');
}
}
class Sparrow extends Bird {
fly() {
console.log('Կաքավը թռչում է');
}
}
class Ostrich extends Bird {
fly() {
throw new Error('Զվարճալի չէ թռչել');
}
}
function makeBirdFly(bird) {
bird.fly();
}
const sparrow = new Sparrow();
makeBirdFly(sparrow); // Կաքավը թռչում է
const ostrich = new Ostrich();
makeBirdFly(ostrich); // Խախտում է LSP
Այստեղ, Ostrich դասը խախտում է Liskov փոխարինման սկզբունքը, քանի որ ենթասահմանը չի աջակցում հիմնական դասի (fly մեթոդի) վարքագիծը: Լավ կլինի դասերը բաժանել թռչող և չթռչող թռչունների, օրինակ՝ ինտերֆեյսների կամ առանձին հիմնական դասերի միջոցով։