Design Patterns
Na curta, porém rapidamente evolutiva história das ciências da computação e da engenharia de software, variaram muito as técnicas, métodos, processos, meios e recursos utilizados. Os projetos fracassavam com freqüência porque os desenvolvedores não conseguiam comunicar um ao outro bons projetos de software, arquiteturas e práticas de programação. Não faz muitos anos, estruturas de dados, fluxogramas e técnicas modulares de programação dominavam o cenário. Então, o paradigma de orientação a objetos iniciou sua trajetória. No contexto do desenvolvimento de software orientado a objetos, os padrões de projeto (…) tornaram-se um dos tópicos mais “quentes” na área de engenharia de software nos últimos anos. O simples uso da OO não garante que obtenhamos sistemas confiáveis, robustos, extensíveis e reutilizáveis. O foco das metodologias de desenvolvimento está na solução em si (o que e como) e não em suas justificativas (porque).
“Um Pattern descreve um problema que se repete várias vezes em um determinado meio, e em seguida descreve o núcleo da sua solução, de modo que esta solução possa ser usada milhares e milhares de vezes” [Christopher Alexander]. Sistematicamente nomeia, motiva e explica um projeto genérico, que endereça um problema de projeto recorrente em sistemas orientados a objetos.
As principais vantagens de utilizarmos padrões são:
Este texto foi compilado a partir de várias fontes publicadas na internet.
“Um Pattern descreve um problema que se repete várias vezes em um determinado meio, e em seguida descreve o núcleo da sua solução, de modo que esta solução possa ser usada milhares e milhares de vezes” [Christopher Alexander]. Sistematicamente nomeia, motiva e explica um projeto genérico, que endereça um problema de projeto recorrente em sistemas orientados a objetos.
As principais vantagens de utilizarmos padrões são:
- Capturam o conhecimento e a experiência de especialistas em projeto de software, pois difícil compartilhar a experiência entre experts e novatos
- Especificam abstrações que estão acima do nível de classes ou objetos isolados ou de componentes [Gamma et al 1995].
- Definem um vocabulário comum para a discussão de problemas e soluções de projeto [Gamma et al 1995].
- Facilitam a documentação e manutenção da arquitetura do software [Buschmann et al 1996].
- Auxiliam o projeto de arquiteturas mais complexas.
Este texto foi compilado a partir de várias fontes publicadas na internet.
Comentários