Skip to content

Implementação simples dos princípios SOLID - repositório para apresentação em palestra

License

Notifications You must be signed in to change notification settings

SousaPedro11/solid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SOLID

Implementação simples dos princípios SOLID

Explanação

Criado por volta dos anos 2000 é um acrônimo para 5 princípios que tendem a melhorar o design e arquitetura do código. Aplicando tais princípios, provavelmente haverá uma redução de complexidade do código, redução dos riscos de quebrar, melhoria na comunicação entre diferentes entidades e o código torna-se mais flexível, legível e gerenciável.

Os princípios são os seguintes:

  • S - Single Responsability

    Uma classe deve ter apenas uma responsabilidade primária, não devendo assumir outras responsabilidades.

    Exemplo: Uma classe de definição não deve ser responsável, também, pela persistência dos dados.

  • O - Open-Closed Principle

    Entidades de software devem ser abertas para extensão, mas fechadas para modificação.

    Exemplo: Uma classe responsável pela autenticação possui no momento implementado a autenticação por e-mail e Facebook. Caso precise adicionar outra forma, Linkedin ou GitHub por exemplo, a classe precisa ser modificada toda vez?

    A abordagem desse princípio para esse caso seria transformar a classe de Autenticação em abstrata e extender dela para implementar os tipos de autenticação.

  • L - Liskov Substitution Principle

    Uma classe derivada deve ser substituível por sua classe base. No caso, a classe derivada não deve alterar o comportamento

  • I - Interface Segregation Principle

    Interfaces específicas são melhores que um interface geral, mas não abuse! Uma analogia seria associando comportamentos a canais de uma assinatura de TV. O cliente não quer e nem deveria pagar o preço por canais que não serão acessados em sua assinatura.

    Voltando para as classes, os comportamentos são separados em interfaces específicas e somente as necessárias serão implementadas pela classe base.

  • D - Dependency Inversion Principle Uma classe de alto nível não deve depender de uma de baixo nível. Ambas devem depender de abstrações. Resumindo, uma classe não deve conhecer a outra, ambas dependem diretamente da abstração e não de sua implementação.

Link Apresentação SOLID Pedro

About

Implementação simples dos princípios SOLID - repositório para apresentação em palestra

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages