Junior — Middle
118
Můžete vysvětlit princip L ze SOLID a jeho význam při návrhu kódu?
Společnosti byly požádány
РедСофт
Odpověď od AI
sobes.tech AI
Princip L z SOLID je princip náhrady Liskov (Liskov Substitution Principle, LSP). Říká, že objekty podtřídy by měly být zaměnitelné s objekty základní třídy bez narušení správnosti programu.
Jednoduše řečeno, pokud třída B dědí od třídy A, všude, kde je používán objekt A, může být nahrazen objektem B a program by měl správně fungovat, aniž by se změnilo jeho chování.
Hodnota při návrhu:
- Zajišťuje správné dědění a polymorfismus.
- Pomáhá předcházet neočekávaným chybám při rozšiřování funkcionality.
- Podporuje tvorbu flexibilních a rozšiřitelných architektur.
Příklad v C++:
class Bird {
public:
virtual void fly() {
// implementace letu
}
};
class Sparrow : public Bird {
// vrabec umí létat, vše v pořádku
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("Pštros neumí létat");
}
};
Zde Ostrich porušuje princip LSP, protože podtřída nepodporuje chování základní třídy. Je lepší navrhnout hierarchii jinak, například vyčleněním rozhraní pro létající ptáky.