A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras.

Apresentações semelhantes


Apresentação em tema: "1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras."— Transcrição da apresentação:

1 1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras

2 Padrões de Projeto de Software OO2 / 28 Padrões de Projeto de Software OO Também conhecidos como  Padrões de Desenho de Software OO  ou simplesmente como Padrões. Porque padrões?  Padrões contêm o somatório da experiência dos melhores projetistas OO;  Reuso de idéias, não de código;  Consistem de micro-arquiteturas de classes, objetos, seus papeis e suas colaborações;

3 Padrões de Projeto de Software OO3 / 28 A Inspiração A idéia de padrões foi apresentada por Christopher Alexander em 1977 no contexto de Arquitetura (de prédios e cidades): Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e então descreve a parte central da solução para aquele problema de uma forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas vezes da mesma forma. Livros  Padrões de Projetos: Soluções reutilizáveis de software OO;  Use a cabeça! Padrões de Projetos.

4 Padrões de Projeto de Software OO4 / 28 Catálogo de soluções Um padrão encerra o conhecimento de uma pessoa muito experiente em um determinado assunto de uma forma que este conhecimento pode ser transmitido para outras pessoas menos experientes. Outras ciências (p.ex. química) e engenharias possuem catálogos de soluções. Desde 1995, o desenvolvimento de software passou a ter o seu primeiro catálogo de soluções para projeto de software: o livro GoF.

5 Padrões de Projeto de Software OO5 / 28 Gang of Four (GoF) E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

6 Padrões de Projeto de Software OO6 / 28 Gang of Four (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. Ao invés de discutirmos um sistema em termos de pilhas, filas, árvores e listas ligadas, passamos a falar de coisas de muito mais alto nível como Fábricas, Fachadas, Observador, Estratégia, Objetos Singulares, etc. 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 C fosse maior. E o impacto foi enorme, o livro vendeu centenas de milhares de cópias.

7 Padrões de Projeto de Software OO7 / 28 Características Descrever e justificar soluções para problemas concretos e bem definidos (não são estratégias de implementação); Ser comprovados, isto é, devem ter sido previamente experimentados e testados; Tratar problema que ocorram em diferentes contextos; Descrever relações entre conceitos, mecanismos e estruturas existentes nos sistemas, seus pontos fortes e fracos; Capturar a evolução e aprimoramento das soluções; Ser utilizados em conjunto com outros padrões, compondo linguagens de padrões.

8 Padrões de Projeto de Software OO8 / 28 Resultados Permitem compartilhar experiências bem sucedidas na resolução de problemas recorrentes; Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software; Permitem que os desenvolvedores concentrem seus esforços nos aspectos inéditos do problema.

9 Padrões de Projeto de Software OO9 / 28 Vantagens no uso de Padrões de Projeto Evita a redescoberta de soluções; Propicia o uso de soluções corretas; Melhora a qualidade do software; Permitem que os desenvolvedores concentrem seus esforços nos aspectos inéditos do problema; Economiza esforço e tempo de desenvolvimento e manutenção; Melhora a confiabilidade do software; Conduz ao bom uso de orientação a objetos; Provê uma linguagem comum entre desenvolvedores:  Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software;  Reduz o volume de documentação

10 Padrões de Projeto de Software OO10 / 28 Tipos de Padrões de Projeto Categorias de Padrões do GoF  Padrões de Criação;  Padrões Estruturais;  Padrões Comportamentais;

11 Padrões de Projeto de Software OO11 / 28 Classificação Padrões de Criação Abstraem o processo de instanciação; Tornam um sistema independente da forma como os objetos são criados, compostos e representados;

12 Padrões de Projeto de Software OO12 / 28 Classificação Padrões Estruturais Lidam com a composição de classes (ou objetos) para formar grandes estruturas no sistema;

13 Padrões de Projeto de Software OO13 / 28 Classificação Padrões Comportamentais Caracterizam a forma como classes (ou objetos) interagem Distribuem responsabilidade;

14 Padrões de Projeto de Software OO14 / 28 Classificação Padrões Comportamentais Caracterizam a forma como classes (ou objetos) interagem; Distribuem responsabilidade;

15 Padrões de Projeto de Software OO15 / 28 Cardápio 1. Abstract Factory 2. Builder 3. Factory Method 4. Prototype 5. Singleton 6. Adapter 7. Bridge 8. Composite 9. Decorator 10. Facade 11. Flyweight 12. Proxy 13. Chain of Responsibility 14. Command 15. Interpreter 16. Iterator 17. Mediator 18. Memento 19. Observer 20. State 21. Strategy 22. Template Method 23. Visitor Padrões de Criação Padrões Estruturais Padrões de Comportamento

16 Padrões de Projeto de Software OO16 / 28 O Formato de um padrão Todo padrão inclui  Nome  Problema  Solução  Conseqüências / Forças

17 Padrões de Projeto de Software OO17 / 28 O Formato dos padrões no GoF  Nome Um bom nome é essencial para que o padrão caia na boca do povo;  Objetivo / Intenção (Também Conhecido Como Motivação) Um cenário mostrando o problema e a necessidade da solução;  Aplicabilidade Como reconhecer as situações nas quais o padrão é aplicável;  Estrutura Uma representação gráfica da estrutura de classes do padrão;  Participantes As classes e objetos que participam e quais são suas responsabilidades;  Colaborações Como os participantes colaboram para exercer as suas responsabilidades

18 Padrões de Projeto de Software OO18 / 28 O Formato dos padrões no GoF  Conseqüências Vantagens e desvantagens, trade-offs (ação econômica que visa à resolução de um problema, mas acarreta outro);  Implementação Com quais detalhes devemos nos preocupar quando implementamos o padrão; Aspectos específicos de cada linguagem;  Exemplo de Código No caso do GoF, em C++ (a maioria) ou Smalltalk; No Head First, Java;  Usos Conhecidos Exemplos de sistemas reais de domínios diferentes onde o padrão é utilizado;  Padrões Relacionados Quais outros padrões devem ser usados em conjunto com esse; Quais padrões são similares a este, quais são as diferenças;

19 Padrões de Projeto de Software OO19 / 28 Estudando uns padrões específicos De Criação:  Singleton;  Abstract Factory; Estrutural:  Decorator; Comportamental:  Observer;  Strategy;

20 Padrões de Projeto de Software OO20 / 28 Recapitulando Voltando ao Christopher Alexander: Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e então descreve a parte central da solução para aquele problema de uma forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas vezes da mesma forma.

21 Padrões de Projeto de Software OO21 / 28 Para pesquisas... Dê uma olhada no GoF ou no Use a Cabeça! Padrões de Projetos  a biblioteca possui algumas cópias! Buscar por “GoF patterns” no google


Carregar ppt "1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras."

Apresentações semelhantes


Anúncios Google