Sobes.tech
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 қағидатын бұзады, себебі ұрпақ класы базалық класс мінез-құлқын қолдамайды. Мұндай жағдайда ұшу құстары интерфейсін бөлек жобалау дұрыс болар еді.