Princípios de Orientação a Objetos

Princípios

O conceito básico de orientação a objetos é a criação de objetos (instâncias) a partir de uma classe definida. A classe representa uma espécie de forma ou moldura de onde são instânciados objetos com as características. A classe portanto caracteriza os objetos criados, incorporando características (atributos) e ações (métodos).

Princípios de Orientação a Objetos norteiam o desenvolvimento orientado a objetos de forma a auxiliar para que sejam mais escalável e manutenível. Evitando que o conceito básico de orientação a objetos inflija heurísticas e métricas de desenvolvimento

Antes da apresentação dos princípios, gostaria de definir um ponto de vista.

Padrões ou Princípios?

A Definição de padrão é modelo, medida. Princípio é toda estrutura sobre a qual se constrói alguma coisa. Diferente dos padrões definidos pelo GoF, que reflete modelos de solução-problema, os princípios esta mais ligado a essência da programação, a forma de pensar e projetar um sistema.
Por esse motivo não vou tratar GRASP como padrão (pattern) e sim como princípio.
Pois os princípios devem ser incorporados pelo programador antes dos padrões.

Além dos 9 princípios GRASP que serão apresentados, há também outros princípios difundidos:

  • Open-Close Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Single Responsability Principle (SRP)
  • Don’t Repeat Yourself (DRY)
  • Dependency Inversion Principle (DIP)
  • Interface Segregation Principle (ISP)

Ao meu ver esses princípios são subprodutos do GRASP. Também vou apresenta-los mas após o GRASP para ficar mais explicito.

Relacionamento de princípios

Os patterns definem a solução para um determinado problema. Já os princípios são complementares e se relacionam para a aplicação de responsabilidade nos projetos de desenvolvimento de software e estão presentes em todos os níveis da aplicação.
Ao apresentar cada princípio em detalhes será possível perceber esse relacionamento e dependência entre os princípios.

Até mais :-)

Deixe um comentario


OBS - Você pode usar estes atributos HTML e tags para formatar seus comentário:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">