Junior — Middle
113
SOLID принципінің L принципін түсіндіріп бере аласыз ба және оның код жобалауындағы маңызы қандай?
Сұралған компаниялар
РедСофт
AI-дан жауап
sobes.tech AI
SOLID қағидатының L принципі — Лисковтың ауыстыру қағидаты (Liskov Substitution Principle, LSP). Ол объектілердің ұрпақ класы базалық класс объектілерімен өзара ауыстырылуы керек, бағдарламаның дұрыстығын бұзбай.
Қарапайым түрде айтқанда, егер B класы A класының мұрагері болса, онда A объектісі қолданылатын жерде B объектісін қоюға болады, және бағдарлама дұрыс жұмыс істеуі керек, өзінің мінез-құлқын өзгеріссіз.
Жобалау кезінде маңызы:
- Дұрыс мұрагерлік пен полиморфизмді қамтамасыз етеді.
- Функционалды кеңейтуде күтпеген қателерден сақтайды.
- Икемді және кеңейтілетін архитектуралар құруға көмектеседі.
C++ мысалы:
class Bird {
public:
virtual void fly() {
// ұшу жүзеге асыру
}
};
class Sparrow : public Bird {
// қарғалар ұша алады, бәрі жақсы
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("Түйеқұс ұша алмайды");
}
};
Мұнда Ostrich LSP қағидатын бұзады, себебі ұрпақ класы базалық класс мінез-құлқын қолдамайды. Мұндай жағдайда ұшу құстары интерфейсін бөлек жобалау дұрыс болар еді.