Prévia do material em texto
Padrões de projeto de software são recursos utilizados para melhorar a qualidade dos projetos e têm o objetivo de fornecer boas práticas para problemas encontrados em diversas atividades no desenvolvimento de softwares. Existem algumas topologias que os definem, e os processos de criação dos objetos são abstraídos dos padrões de projetos. O objetivo, portanto, é que os padrões façam com que o sistema se torne independente da mesma forma como são os seus objetos. Nesse contexto, disserte como cada um dos 4 grupos de padrões pode modificar a arquitetura de software. Sabemos que não devemos resolver cada problema a partir de princípios elementares ou do zero, mas sim, reutilizar soluções que funcionaram no passado, e que programadores avançados os utilizam repetidamente em seus projetos. Sendo assim, os padrões de projetos proporcionam elementos que conduzem ao reaproveitamento de soluções, e não apenas a reutilização de código. Os padrões de projetos tornam mais fácil reutilizar soluções e arquiteturas bem sucedidas para construir softwares orientados a objetos de forma flexível e fácil de manter, reduzindo a complexidade do processo de projetar software. Escolher o padrão que melhor soluciona um problema do projeto não é uma tarefa fácil, e após sua(s) escolha(s) é necessária conhecer como utilizá-lo(s). Diante disso, podemos levar em consideração algumas características dos padrões. - Padrões estruturais, explicam como montar objetos e classes em estruturas maiores, mas ainda mantendo essas estruturas flexíveis e eficientes. Permite a colaboração de objetos de interfaces incompatíveis. Os padrões de classes utilizam a herança para compor interfaces ou implementações, e os de objeto ao invés de compor interfaces ou implementações, eles descrevem maneiras de compor objetos para obter novas funcionalidades. A flexibilidade obtida pela composição de objetos provém da capacidade de mudar a composição em tempo de execução o que não é possível com a composição estática (herança de classes). - Padrões comportamentais, são voltados aos algoritmos e a designação de responsabilidades entre objetos. Eles não descrevem apenas padrões de objetos ou de classes, mas também os padrões de comunicação entre os objetos. Os padrões comportamentais de classes utilizam a herança para distribuir o comportamento entre classes, e os padrões de comportamento de objeto utilizam a composição de objetos em contrapartida a herança. Alguns descrevem como grupos de objetos que cooperam para a execução de uma tarefa que não poderia ser executada por um objeto sozinho. Sua utilização, auxilia na equipe de desenvolvimento de modo que possam se dedicar apenas com a forma que eles se comunicam e podendo concentrar o tempo restante em outros detalhes. Como aplicabilidade desse padrão podemos citar: - Para implementar as partes invariantes de um algoritmo e deixar para subclasses a implementação da parte variante. - Para fatorar o comportamento semelhante entre subclasses numa superclasse evitando-se assim a duplicação de código. - Para controlar extensões de classes com métodos "gancho". - Padrões para persistência, descrevem soluções para problemas de armazenamento de informações. - Padrões para apresentação, definem soluções para problemas comuns no projeto de interface de software. Conhecer esses pontos comuns nos permite desenvolver soluções cada vez melhores e mais eficientes através de uma linguagem clara e sucinta.