Início > Qualidade de Código > Princípios S.O.L.I.D.

Princípios S.O.L.I.D.

Canivete suíçoS.O.L.I.D. é um conjunto de boas práticas de projetos Orientado a Objetos. Essas práticas foram elencadas por Robert Martin (o “Tio Bob”) em seu livro Agile Principles, Patterns, and Practices in C#. A aplicação desses princípios tem como objetivo a construção de software mais flexível, legível, fácil de entender e de modificar.

O termo S.O.L.I.D. é um acrônimo formado pelas iniciais de cada princípio. E quais são esses princípios? Pois bem, nesse post vamos fazer um pequeno resumo sobre eles:

Single Responsibility Principle (SRP)

Esse princípio estabelece que todo objeto deve ter apenas uma razão para mudar e somente uma responsabilidade. Objetos concisos aumentam a capacidade de manutenção do sistema e o deixam mais legível. Para saber mais leia esse post.

Open-Close Principle (OCP)

Establece que classes devem ser abertas para extensões e fechadas para modificações. Deve ser simples adicionar novas funcionalidades e extender as antigas sem, contudo, alterar seu comportamento interno. Esse princípio também tenta evitar a quebra de classes em outras que dependam dela.

Liskov Substitution Principle (LSP)

Afirma que deve-se ser capaz de utilizar qualquer classe derivada no lugar da classe pai e obter o comportamento semelhante sem que seja necessária alguma modificação. O LSP acessegura que a classe derivada não deve afetar o comportamento da classe pai, estando assim de acordo com o OCP.

Interface Segregation Principle (ISP)

Estabelece que classes que utilizam a mesma interface implementem apenas métodos que sejam realmente necessários. Dessa forma é melhor dividir os métodos em grupos de responsabilidade, assinando (atribuindo) interfaces para estes grupos, evitando uma interface muito grande e métodos que não serão usados.

Dependency Inversion Principle (DIP)

Objetiva isolar classes de implementações concretas, expondo classes abstratas ou interfaces. Esse princípio promove a prática de “codificar para interface ao invés de “codificar para implementação”, aumentando a flexibilidade e desacoplando o sistema.

Se quiser saber mais sobre esses princípios dê uma olhada neste artigo do Uncle Bob, onde ele descreve cada um deles.

Anúncios
  1. 07/20/2011 às 6:25 PM

    Denis,

    Gostei do artigo, mas ficaria ainda melhor se você colocasse pequenos exemplos em código. tentando mostrar na prática os problemas de não respeitar esses principios.

    Abraços garoto.

    • 07/21/2011 às 1:41 PM

      Pode deixar, Burgo. Em breve, explicarei cada um dos princípios em posts separados.
      Valeu pela dica!

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: