Junior — Middle
Vai jūs varat izskaidrot SOLID principa L un tā nozīmi programmatūras projektēšanā?
sobes.tech AI
Atbilde no AI
SOLID principa L ir ir Liskova aizvietošanas princips (Liskov Substitution Principle, LSP). Tas nosaka, ka apakšklases objektiem jābūt aizvietojamiem ar pamata klases objektiem bez programmas korektuma pārtraukšanas.
Vienkārši sakot, ja klase B manto no klases A, tad jebkur, kur tiek izmantots A objekts, to var aizstāt ar B objektu, un programma jādarbojas pareizi, nemainot savu uzvedību.
Projektēšanas vērtība:
- Nodrošina pareizu mantošanu un polimorfismu.
- Palīdz izvairīties no negaidītām kļūdām funkcionalitātes paplašināšanā.
- Veicina elastīgu un paplašināmu arhitektūru izveidi.
Piemērs C++:
class Bird {
public:
virtual void fly() {
// lidojuma īstenošana
}
};
class Sparrow : public Bird {
// zvirbulis var lidot, viss kārtībā
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("Ostrich nevar lidot");
}
};
Šeit Ostrich pārkāpj LSP, jo apakšklase neatbalsta pamata klases uzvedību. Labāk ir projektēt hierarhiju citādi, piemēram, atdalot interfeisu lidojošiem putniem.