Sobes.tech
Junior — Middle

SOLID-in L prinsipini və onun kod dizaynındakı əhəmiyyətini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

SOLID-in L prinsipi Liskovun Əvəzolunmazlıq Prinsipi (Liskov Substitution Principle, LSP) kimi tanınır. Bu prinsip, alt sinif obyektlərinin əsas sinif obyektləri ilə əvəz edilə biləcəyini və proqramın düzgünlüyünü pozmadan işləməli olduğunu ifadə edir.

Sadə dillə desək, əgər B sinfi A sinfindən irsən alıbsa, A obyekti istifadə olunan hər yerdə, onu B obyekti ilə əvəz etmək olar və proqram düzgün işləməyə davam etməlidir, davranışını dəyişmədən.

Təsarımda dəyər:

  • Düzgün irsiyyət və çox formallıq təmin edir.
  • Funksionallığın genişləndirilməsində gözlənilməz səhvlərin qarşısını alır.
  • Elastik və genişlənə bilən memarlıq yaratmağa kömək edir.

C++ nümunəsi:

class Bird {
public:
    virtual void fly() {
        // uçuşun tətbiqi
    }
};

class Sparrow : public Bird {
    // sərçə uça bilər, hər şey qaydasındadır
};

class Ostrich : public Bird {
public:
    void fly() override {
        throw std::logic_error("Dəvəquşu uça bilməz");
    }
};

Burada Ostrich LSP-ni pozur, çünki alt sinif əsas sinifin davranışını dəstəkləmir. Hierarxiyanı başqa cür layihələndirmək daha yaxşıdır, məsələn, uçan quşlar üçün interfeys ayırmaq kimi.