padrões de projeto. o que são? soluções provenientes de diversos projetos e utilizadas por...
TRANSCRIPT
![Page 1: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/1.jpg)
Padrões de Projeto
![Page 2: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/2.jpg)
O que são? Soluções provenientes de diversos projetos e
utilizadas por diversos programadores; Documentadas e catálogos como Padrões de Projeto
(Design Patterns); Catálogo GoF (Gang of Four); Visam a melhorar o acoplamento e a coesão do
projeto de software; Devem ser adaptados ao contexto em que são
aplicados;
![Page 3: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/3.jpg)
Os Padrões GoF
![Page 4: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/4.jpg)
Criação
Singleton; Factory Method;
![Page 5: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/5.jpg)
Singleton
![Page 6: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/6.jpg)
Singleton
Exemplo: Contador de acessos em um site; Conexão com DB; Runtime (Java);
Vantagem: Compartilhamento de objetos; Garante apenas um objeto;
![Page 7: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/7.jpg)
Factory Method
![Page 8: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/8.jpg)
Factory Method
![Page 9: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/9.jpg)
Factory Method Vantagens:
Instanciação indireta; Fácil adição de novas classes a serem instanciadas; Desacoplamento;
Desvantagem: Uma classe concreta para cada tipo de item produzido; Nem sempre o desacoplamento é garantido;
Factory Method com aninhamento de ifs;
![Page 10: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/10.jpg)
Estrutura
Facade;
![Page 11: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/11.jpg)
Facade
![Page 12: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/12.jpg)
Facade
![Page 13: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/13.jpg)
Facade
Vantagens: Um ponto de entrada; Fácil de saber onde está a funcionalidade; Uma classe só deve ser alterada;
Desvantagens: Facade é altamente acoplado ao seu subsistema; Facade deve ser completo e sem defeitos;
![Page 14: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/14.jpg)
Comportamento
Strategy; Observer;
![Page 15: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/15.jpg)
Strategy
![Page 16: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/16.jpg)
Strategy
![Page 17: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/17.jpg)
Strategy
Vantagens: Simples; Alto desacoplamento; Intercâmbio de Algoritmos;
Desvantagens: Precisa construir o objeto de uma classe concreta; Nem sempre é a solução para tudo;
![Page 18: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/18.jpg)
Observer
![Page 19: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/19.jpg)
Observer
![Page 20: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/20.jpg)
Observer
Vantagens: Desacopla notificadores de observadores; Aumenta a coesão – Melhor atribuição de
responsabilidades;
Desvantagens: Notificações desnecessárias; Complexidade;
![Page 21: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/21.jpg)
Conclusão
Soluções quase prontas; Precisa de adaptações; Melhora a coesão e o acoplamento dos
elementos seu projeto; Podem ser complexos; Não podem ser aplicados sempre; É possível combiná-los;
![Page 22: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/22.jpg)
Exercício
Você precisa criar um software para uma empresa que trabalha com bolsa de valores;
Essa empresa trabalha com a NASDAQ e com a BOVESPA;
Sempre que uma das duas bolsas sobe, todos os clientes da empresa devem ser notificados;
Quando uma das duas bolsas cai, somente os clientes premium podem ser notificados;
![Page 23: Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por diversos programadores; Documentadas e catálogos como Padrões](https://reader035.vdocuments.com.br/reader035/viewer/2022070507/570638471a28abb8238f3ec3/html5/thumbnails/23.jpg)
Solução