Junior — Middle
Proqramlaşdırma təcrübəsində Liskov-un yerinə qoyma prinsipinin necə tətbiq olunduğuna nümunə göstərə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Liskov Əvəzetmə Prinsipi (Liskov Substitution Principle, LSP) deyir ki, alt sinifin obyektləri, əsas sinifin obyektləri ilə əvəz oluna bilər və proqramın düzgün işləməsinə zərər verməməlidir.
JavaScript (Node.js) nümunəsi:
class Bird {
fly() {
console.log('Quş uçur');
}
}
class Sparrow extends Bird {
fly() {
console.log('Qartal uçur');
}
}
class Ostrich extends Bird {
fly() {
throw new Error('Ostrich uça bilməz');
}
}
function makeBirdFly(bird) {
bird.fly();
}
const sparrow = new Sparrow();
makeBirdFly(sparrow); // Qartal uçur
const ostrich = new Ostrich();
makeBirdFly(ostrich); // Xəta — LSP pozulur
Burada Ostrich sinfi, əsas sinfin davranışını (fly metodu) dəstəkləmir, ona görə də Liskov Əvəzetmə Prinsipi pozulur. LSP-ə riayət etmək üçün, uçan və uçmayan quşları ayırmaq daha yaxşıdır, məsələn, interfeyslər və ya ayrı əsas siniflər vasitəsilə.