Skip to content

rafaelissaomiyagawa/solid-examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

S.O.L.I.D. Exemplos

Single Responsibility Principle

Uma classe deve ter um, e somente um, motivo para mudar1.

Deixe junto as coisas que mudam pela mesma razão. Separe aquelas que mudam por razões diferentes1.

O princípio da responsabilidade única fala sobre como diminuir o acoplamento baseado na frequência e na origem das mudanças/alterações no código.

Alguns exemplos:

Open/Closed Principle

Entidades de software (classes, módulos, funções, etc.) devem ser abertas para extensão, mas fechadas para modificação2.

Módulos que atendem o princípio aberto/fechado possuem dois principais atributos:

  • Eles estão "abertos para extensão"
  • Eles estão "fechados para modificação"

Conseguimos atingir estes dois atributos utilizando abstração.

Alguns exemplos:

Liskov Substitution Principle

Os serviços da classe derivada não devem exigir mais e prometer nada menos do que os serviços correspondentes da classe base3.

A função que usa uma classe base deve conseguir usar suas subclasses sem distinguir3.

Interface Segregation Principle

Muitas interfaces específicas são melhores do que uma interface única geral4.

Este princípio traz o foco em diminuir o acoplamento em interfaces. Com interfaces mais coesas, conseguimos criar códigos coesos e com baixo acoplamento.

Alguns exemplos:

Dependency Inversion Principle

Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações5.

Footnotes

  1. https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html 2

  2. https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle

  3. https://en.wikipedia.org/wiki/Liskov_substitution_principle 2

  4. https://en.wikipedia.org/wiki/Interface_segregation_principle

  5. https://en.wikipedia.org/wiki/Dependency_inversion_principle

About

Example of SOLID principles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published