Junior — Middle
Pode explicar o princípio L do SOLID e seu significado no design de código?
sobes.tech IA
Resposta da IA
O princípio L do SOLID é o Princípio de Substituição de Liskov (Liskov Substitution Principle, LSP). Ele afirma que objetos de uma subclasse devem ser intercambiáveis com objetos da classe base sem quebrar a correção do programa.
Simplificando, se a classe B herda de A, em qualquer lugar onde um objeto A seja usado, pode ser substituído por um objeto B, e o programa deve funcionar corretamente, sem alterar seu comportamento.
Valor na concepção:
- Garante herança e polimorfismo corretos.
- Ajuda a evitar erros inesperados ao expandir funcionalidades.
- Promove a criação de arquiteturas flexíveis e escaláveis.
Exemplo em C++:
class Bird {
public:
virtual void fly() {
// implementação do voo
}
};
class Sparrow : public Bird {
// pardal consegue voar, tudo bem
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("A avestruz não consegue voar");
}
};
Aqui, Ostrich viola o princípio LSP, pois a subclasse não suporta o comportamento da classe base. É melhor projetar a hierarquia de outra forma, por exemplo, destacando uma interface para aves que voam.