Upload
samantha-koch
View
24
Download
1
Embed Size (px)
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
Citation preview
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
Design?
Problema: queremos agora um currículo resumido que tem as mesmas funcionalidades do original, mas uma página de conteúdo diferente
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
Colaborações
Problema-exemplo 2
Serviço de envio de pedidos
Inicialmente enviamos sempre por email
Queremos agora enviar via REST para fornecedores maiores
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
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.
UML
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
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
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
Dúvidas?