padr ões de projeto detalhados factory method , abstract factory

15
Padrões de projeto detalhados Factory Method, Abstract Factory Nazareno Andrade

Upload: samantha-koch

Post on 02-Jan-2016

24 views

Category:

Documents


1 download

DESCRIPTION

Padr ões de projeto detalhados Factory Method , Abstract Factory. Nazareno Andrade. Padr ões de projeto ( GoF ) De criação Estruturais De comportamento. Problema-exemplo. Sistema para criar e exibir curr ículo Um currículo tem página de rosto, página de conteúdo e página de encerramento - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Padrões de projeto detalhados

Factory Method, Abstract Factory

Nazareno Andrade

Page 2: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Padrões de projeto (GoF)

De criação Estruturais De comportamento

Page 3: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Problema-exemplo

Sistema para criar e exibir currículo

Um currículo tem página de rosto, página de conteúdo e página de encerramento

Design?

Page 4: Padr ões de projeto detalhados Factory Method , Abstract  Factory
Page 5: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Problema: queremos agora um currículo resumido que tem as mesmas funcionalidades do original, mas uma página de conteúdo diferente

Page 6: Padr ões de projeto detalhados Factory Method , Abstract  Factory

6

Factory Method

Intenção Definir uma interface para criar objetos, mas

deixar as subclasses decidirem que classe instanciar. Permite adiar a instanciação para subclasses.

Aplicabilidade classe não conhece antecipadamente a

classe dos objetos que deve criar classe quer que suas subclasses

especifiquem os objetos que criam

Page 7: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Colaborações

Page 8: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Problema-exemplo 2

Serviço de envio de pedidos

Inicialmente enviamos sempre por email

Queremos agora enviar via REST para fornecedores maiores

Page 9: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Problema

Como garantir que, em um contexto, mensagem e serviço de mensagem serão da mesma “Família”?

Isso acontece por exemplo no look-and-feel de interfaces gráficas

Page 10: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Solução: Abstract Factory

Solução: Fornece uma interface para a criação de uma família de objetos relacionados ou dependentes sem especificar classes concretas.

Page 11: Padr ões de projeto detalhados Factory Method , Abstract  Factory

UML

Page 12: Padr ões de projeto detalhados Factory Method , Abstract  Factory

12Factory Method, Abstract Factory

Aplicabilidade um sistema deve ser independente de como seus

produtos são criados, compostos ou representados um sistema deve ser configurado como um produto de

uma família de múltiplos produtos uma família de objetos-produto for projetada para ser

usada em conjunto e você necessita garantir esta restrição

você quer fornecer uma biblioteca de classes de produtos e quer revelar somente suas interfaces, não suas implementações

Page 13: Padr ões de projeto detalhados Factory Method , Abstract  Factory

13Factory Method, Abstract Factory

Conseqüências isolamento das classes concretas torna fácil a troca de famílias de produtos promove a harmonia entre produtos é difícil, porém, suportar novos tipos de produtos

Page 14: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Usos conhecidos

Família de classes necessária para lidar com banco de dados

Família de classes necessária para lidar com placa de rede

Família de classes para lidar com look-and-feel das interfaces

Page 15: Padr ões de projeto detalhados Factory Method , Abstract  Factory

Dúvidas?