Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por...

23
Padrões de Projeto

Transcript of Padrões de Projeto. O que são? Soluções provenientes de diversos projetos e utilizadas por...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Solução