Combinando padrões orientados a objetos

Neste artigo veremos como utilizar os princípios OO e padrões de projeto para desenvolver software de fácil entendimento e manutenção. Em seguida, mostraremos como padrões técnicos se relacionam com padrões de domínio utilizando como exemplo os padrões Strategy e Specification.

De que se trata o artigo:

Neste artigo veremos como utilizar os princípios OO e padrões de projeto para desenvolver software de fácil entendimento e manutenção. Em seguida, mostraremos como padrões técnicos se relacionam com padrões de domínio utilizando como exemplo os padrões Strategy e Specification.

Para que serve:

É um conhecimento essencial para o profissional que deseja sair do “lugar-comum” dos fundamentos OO ensinado nas escolas – fundamentos estes essencialmente teóricos e de pouca utilidade prática, fazendo com que o programador crie “barreiras” no aprendizado da modelagem de objetos.

Em que situação o tema útil:

No desenvolvimento de aplicativos empresariais de fácil manutenção e flexíveis quanto às inevitáveis mudanças no decorrer do seu ciclo de vida. Permite que o profissional tome decisões de modelagem embasadas em argumentos sólidos em resposta aos problemas que vier a enfrentar, afastando os “achismos” e “modismos” tão comuns na comunidade de software.

Combinando Padrões OO:

Neste artigo demonstraremos como implementar regras de negócio de forma elegante, simples e flexível em suas aplicações orientadas a objetos, adotando para isso o design pattern Strategy, o domain pattern Specification e princípios OO.

Muitos desenvolvedores, sobretudo os iniciantes, acreditam que basta conhecer os principais fundamentos OO (abstração, herança, encapsulamento e polimorfismo) para que sejamos experts na construção de sistemas elegantes, de alto nível de flexibilidade e de manutenção simplificada. Esse é um mal-entendido muito comum no mundo do desenvolvimento de software.

Será possível desenvolver sistemas de qualidade apenas sabendo que uma classe deve ocultar seus dados e que pode ser estendida por outras classes? Bastante improvável. De fato, a construção de sistemas com essas características não é uma tarefa trivial e exige muita experiência, dedicação e força de vontade de cada desenvolvedor – algo que não é conseguido apenas através do aprendizado dos fundamentos básicos da orientação a objetos. A raiz desse mal-entendido encontra-se na forma como a matéria é ensinada em muitas escolas, priorizando apenas os fundamentos OO como se fossem uma “fórmula mágica” para criação de aplicativos empresariais. Em consequência, os estudantes passam a agir de duas formas distintas: ou abandonam o assunto e voltam a trabalhar da maneira procedural ou então acreditam que não é mais necessário se aprofundar na matéria e passam a trabalhar com uma base nada sólida de " [...] continue lendo...

Artigos relacionados