🎯 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