🎯 Desvendando o Princípio da Substituição de Liskov 🔄(LSP)

Miguel Batista
2 min readDec 12, 2023

O Princípio da Substituição de Liskov (Liskov Substitution Principle — LSP) estabelece que objetos de uma classe derivada devem ser capazes de substituir objetos da classe base sem afetar a corretude do programa. Em outras palavras, se uma classe base é substituída por sua classe derivada em qualquer parte do código, o comportamento do programa não deve ser comprometido.

Vou fornecer um exemplo em C# que ilustra o LSP:

Suponha que temos uma hierarquia de classes representando formas geométricas, onde todas as formas têm um método CalcularÁrea()

using System;
// Classe base representando uma forma geométrica.
class FormaGeometrica
{
public virtual double CalcularArea()
{
return 0.0;
}
}

// Classe derivada representando um retângulo.
class Retangulo : FormaGeometrica
{
public double Altura { get; set; }
public double Largura { get; set; }

public override double CalcularArea()
{
return Altura * Largura;
}
}

// Classe derivada representando um círculo.
class Circulo : FormaGeometrica
{
public double Raio { get; set; }

public override double CalcularArea()
{
return Math.PI * Raio * Raio;
}
}

class Program
{
static void Main()
{
// Usando o polimorfismo para calcular áreas de diferentes formas.
FormaGeometrica retangulo = new Retangulo { Altura = 5, Largura = 10 };
FormaGeometrica circulo = new Circulo { Raio = 3 };

Console.WriteLine("Área do retângulo: " + retângulo.CalcularArea());
Console.WriteLine("Área do círculo: " + circulo.CalcularArea());
}
}


Neste exemplo, temos uma classe base FormaGeometrica com um método CalcularÁrea(), que é substituído nas classes derivadas Retângulo e Círculo. O polimorfismo é usado para calcular áreas de diferentes formas sem se preocupar com os detalhes específicos de cada forma.

O LSP é observado aqui, pois as classes derivadas (Retângulo e Círculo) podem ser substituídas pela classe base (FormaGeometrica) em qualquer contexto sem causar problemas de comportamento. Isso demonstra que as classes derivadas são compatíveis com a classe base.

Agora que concluímos o aprendizado e aprimoramento, sabemos entender e aplicar o LSP. Saiba que a estrada do desenvolvimento de software está repleta de desafios e descobertas.

Mantenha-se curioso, explore novas práticas, e não tema revisitar conceitos fundamentais. Aprofundar seu entendimento sobre os princípios SOLID, como o LSP, é como afinar um instrumento musical — quanto mais você pratica, mais harmônico e eficiente se torna seu código 🏋️

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Miguel Batista
Miguel Batista

Written by Miguel Batista

Formado em Sistemas para Internet, sempre em contato com programação de software. Aprender e compartilhar conhecimento para soluções tech de qualidade.

No responses yet

Write a response