S.O.L.I.D

Ederson Melo
edersonmelo

--

S.O.L.I.D são cinco princípios da programação orientada a objetos que facilitam no desenvolvimento de softwares, tornando-os fáceis de manter e estender. E podem ser aplicados a qualquer linguagem de POO.

S.O.L.I.D é um acrônimo criado por Michael Feathers, após observar que cinco princípios da orientação a objetos e design de código — Criados por Robert C. Martin(conhecido como Uncle Bob) em seu trabalho lançado no ano 2000.

Uncle Bob é o autor de dois livros muito conhecidos, Código limpo e Arquitetura limpa, e um dos participantes da “Aliança Agile”.

S.O.L.I.D: Os 5 princípios da POO

S — Single Responsiblity Principle (Princípio da responsabilidade única);

O — Open-Closed Principle (Princípio Aberto-Fechado);

L — Liskov Substitution Principle (Princípio da substituição de Liskov);

I — Interface Segregation Principle (Princípio da Segregação da Interface);

D — Dependency Inversion Principle (Princípio da inversão da dependência);

Esses princípios ajudam o programador a escrever códigos mais limpos, separando responsabilidades, diminuindo acoplamentos, facilitando na refatoração e estimulando o reaproveitamento do código.

1. SRP — Single Responsibility Principle:

Princípio da Responsabilidade Única — Uma classe deve somente um motivo para mudar.

Esse princípio declara que uma classe deve ser especializada em um único assunto e possuir apenas uma responsabilidade dentro do software, tendo uma única tarefa ou ação para executar.

2. OCP — Open-Closed Principle:

Princípio Aberto-Fechado — Objetos ou entidades devem estar abertos para extensão, mas fechados para modificação, ou seja, quando novos comportamentos e recursos precisam ser adicionados no software, devemos estender e não alterar o código fonte original.

3. LSP — Liskov Substitution Principle:

Princípio da substituição de Liskov — Uma classe derivada deve ser substituível por sua classe base.

Introduzido por Barbara Liskov em sua conferência “Data abstraction” em 1987, diz que para cada objeto o1 do tipo S há um objeto o2 do tipo T de forma que, para todos os programas P definidos em termos de T, o comportamento de P é inalterado quando o1 é substituído por o2 então S é um subtipo de T.

4. ISP — Interface Segregation Principle:

Princípio da Segregação da Interface — Uma classe não deve ser forçada a implementar interfaces e métodos que não irão utilizar.

Concordamos que é melhor criar interfaces mais específicas ao invés de termos uma única interface genérica.

5. DIP — Dependency Inversion Principle:

Princípio da Inversão de Dependência — Dependa de abstrações e não de implementações.

A ideia de Uncle Bob é:

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

2. Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações.

Obs.: Inversão de Dependência não é igual a Injeção de Dependência. A Inversão de Dependência é um princípio (Conceito) e a Injeção de Dependência é um padrão de projeto (Design Pattern).

Uma das ideias destes princípios, no final, é conseguimos manter nossa arquitetura de código limpo, podendo construir aplicações de “fácil” manutenção conforme o tempo.

--

--

edersonmelo
edersonmelo

Published in edersonmelo

Arquiteto de Soluções na @EY | 4x Certificado Oracle | Head de Arquitetura e Engenharia de Software | IA & Dados | DevOps

Ederson Melo
Ederson Melo

Written by Ederson Melo

Arquiteto de Soluções na @EY | 4x Certificado Oracle | Head de Arquitetura e Engenharia de Software | IA & Dados | DevOps

No responses yet