Princ Pios Do Design De Software Orientado A Objetos
Princípios
O que é design?
“É a
idealização, criação, desenvolvimento, configuração,
concepção, elaboração
e
especificação de artefatos,
normalmente produzidos industrialmente ou por meio de sistema de produção seriada e
demandando
padronização dos componentes
e
compatibilização do desenho. Essa é uma atividade estratégica, técnica e criativa, normalmente orientada por uma intenção ou objetivo, ou para a
solução de um problema.” – Wikipedia.
Quando falamos sobre pensamento orientado a objetos, nos referimos aos seguintes conceitos… Objeto
Classe
Composição
Herança
Polimorfismo
Encapsulamento
Abstração
Como desenhar software levando em consideração o pensamento orientado a objetos? Seguindo alguns princípios fundamentais:
S.O.L.I.D
D.R.Y
K.I.S.S
Y.A.G.N.I
Gêneses 1.1: E o tio Bob disse: que haja
S.O.L.I.D! E “solid” software se fez!
S – Single responsibility principle
O – Open/Closed principle
L – Liskov substitution principle
I – Interface segregation principle
D – Dependency inversion principle
Single Responsibility Principle
Todo objeto deve ter responsabilidade somente sobre uma parte da funcionalidade provida pelo sistema e a responsabilidade deve ser totalmente encapsulada no objeto. Todo comportamento e estado desse objeto deve estar alinhado com a sua responsabilidade.
Expressões-chave: encapsulamento. reponsabilidade;
parte
da
funcionalidade;
Open/Closed principle
Entidades de software (classes, estruturas, módulos, funções, etc.) devem ser abertos para extensão mas fechados para modificação.
Expressões-chave: extensão; modificação.
Liskov Substitution Principle
Em um programa de computador, se S é um subtipo de T, então objetos do tipo
T podem ser substituídos por objetos do tipo S sem que ocorra a alteração de propriedades desejáveis do programa como, correção, funcionalidade, etc.
Expressões-chave: tipos; substituição.
Interface Segregation Principle
Nenhum cliente (classe) deve