Introdução a Padrões de Projetos

16
Introdução a Padrões de Projetos Unipê Sistemas Para Internet Análise de Projetos e Sistemas Professora: Carolina Santana Equipe: Adilson, David, Iury, Ítalo, Rodrigo

Transcript of Introdução a Padrões de Projetos

Introdução a Padrões de Projetos

UnipêSistemas Para InternetAnálise de Projetos e SistemasProfessora: Carolina Santana

Equipe: Adilson, David, Iury, Ítalo, Rodrigo

Definição• “Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para resolver um problema genérico de design em um contexto específico”.

Gamma, Helm, Vlissides & Johnson, sobre padrões em software

•“[...]cada padrão descreve um problema que ocorre várias vezes em nosso ambiente, e então descreve a base para a solução deste problema, de maneira a permitir que esta solução seja reutilizada milhões de vezes, sem a necessidade de refazê-la.”

(ALEXANDER, 1977 apud GAMMA et al, 1995, tradução nossa).

Surgimento• A idéia de padrões foi apresentada por Christopher Alexander em 1977 no contexto de Arquitetura de prédios e cidades.

• Em 1987, Ward Cunninghan e Kent Beck propuseram os primeiros 5 padrões e os apresentaram na OOPSLA.

• Posteriormente os Padrões de Projetos (Design Patterns) são criados por Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, conhecidos como “The Gang of Four” (“A Gangue dos Quatro) ou simplesmente GoF.

Gang of Four (GoF)• O livro descreve 23 padrões de projetos úteis.

• Referência atual sobre e para outros padrões de projeto.

Gang of Four (GoF)• Com o GoF, passamos a ter um vocabulário comum para conversar sobre projetos de software.

• Soluções que não tinham nome passam a ter nome.

• A maioria dos autores eram entusiastas de Smalltalk, principalmente o Ralph Johnson.

• Mas acabaram baseando o livro em C++ para que o impacto junto à comunidade de CC fosse maior. E o impacto foi enorme, o livro vendeu centenas de milhares de cópias.

Para que realmente servem os Padrões de Projeto?

• Servem para mostrar (ou demonstrar) soluções prontas para problemas que são comuns;

• Soluções estas que podem ser implementadas em qualquer linguagem de programação;

• Através da análise de caso e de solução de uma situação, conhecendo os padrões de projeto você pode decidir qual usar, como usar e porque usar um padrão de projeto – se realmente for conveniente para o caso em foco.

Características e Elementos de um PadrãoCaracterísticas:• Encapsulamento• Generalidade• Equilíbrio• Abstração• Abertura• Combinatoriedade

Elementos:

• Nome• Problema• Solução• Consequências

Quais as vantagens de utilizar Padrões de Projeto?

•Ajuda a remover a duplicação de código;• Simplifica a lógica;•Incrementa a flexibilidade do sistema;•Permite a implementação de soluções simples, com elegância e versatilidade;•Permite a reutilização de projetos e arquiteturas;•Torna a codificação mais acessível para novos desenvolvedores do sistema;

Quais as vantagens de utilizar Padrões de Projeto?

• Melhoram a documentação e manutenção dos sistemas existentes por fornecer uma especificação explícita das interações entre classes e objetos e a intenção de uso dos mesmos;

• Ajuda o projetista a encontrar a solução adequada de maneira mais rápida;

• Auxilia na escolha de projetos que tornam o sistema reutilizável, evitando escolhas que comprometam a reusabilidade do modelo escolhido.

Quais as vantagens de utilizar Padrões de Projeto?

• Facilita a comunicação e compreensão,pois comunicação e trabalho em equipe requerem uma base de vocabulário e um ponto de vista em comum.

Como e quando usar padrões de Projetos?

• Considere como os padrões de projeto podem solucionar os problemas do projeto;

• Examine as seções de descrição do problema de cada padrão;

• Estude os relacionamentos entre os padrões;• Estude padrões de finalidades semelhantes;• Utilize o padrão de projeto que se ajusta ao seu caso para melhorar as deficiências verificadas no seu projeto;

• É preciso ter uma visão global do seu projeto e seu funcionamento.

Classificação de padrões de projetos

Classificação de padrões de projetos

• Por propósito• Criação • Estruturais • Comportamentais

• Por escopo• Classe• Objeto

Conclusões sobre Padrões de Projeto

•Tornam mais fácil reutilizar soluções bem sucedidas para construir softwares orientados a objetos de forma flexível e fácil de manter;•Reduz a complexidade do processo de projetar software.;•Possibilita aos projetistas reutilizar e empregar componentes preexistentes em sistemas futuros.

Tirinha

Referências• http://fabiocesar.wordpress.com/2007/10/04/padroes-de-projeto-0-introducao/ - acesso em: 15/11/2013

• http://dietinf.ifrn.edu.br/lib/exe/fetch.php?media=corpodocente:minora:disciplinas:arquitetura_de_software:slides:dp-introducao.pdf - acesso em: 15/11/2013

• http://www.cin.ufpe.br/~if718/transparencias/pdf/05-padroesGoF.pdf - acesso em: 15/11/2013

• http://francisodisi.wordpress.com/2009/10/27/introducao-a-padroes-de-projeto-design-patterns/ - acesso em: 15/11/2013

• http://www.princiweb.com.br/blog/programacao/design-patterns/o-que-sao-design-patterns.html - acesso em: 18/11/2013

• http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software#Hist.C3.B3ria - acesso em: 18/11/2013