Sobes.tech
Junior — Middle

Оё метавонед принсипи L-рои SOLID ва аҳамияти он дар тарҳрезии коди шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Принципи L-и SOLID — ин принсипи ивазкунӣ Лисков (Liskov Substitution Principle, LSP). Он мегӯяд, ки объектҳои зерсинф бояд бо объектҳои синфи асосӣ ивазшаванда бошанд, бидуни вайрон кардани дурустии барнома.

Ба сурати содда, агар синфи B аз синфи A мерос гирад, дар ҳар ҷо, ки объект A истифода мешавад, онро бо объект B иваз кардан мумкин аст, ва барнома бояд дуруст кор кунад, бидуни тағир додани рафтор.

Арзиши дар тарҳрезӣ:

  • Мушаххас мекунад мерос ва полиморфизмро дуруст.
  • Ҳ aid to avoid unexpected errors when expanding functionality.
  • Тавассути эҷоди сохторҳои чандир ва васеъшаванда.

Масалан дар 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-ро вайрон мекунад, зеро зерсинф ба рафтори синфи асосӣ дастгирӣ намекунад. Беҳтар аст, ки иерархияро дигар тарз тарҳрезӣ кунед, масалан, интерфейси парвозкунандагонро ҷудо кунед.