Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDébora Rodriques Alterado mais de 10 anos atrás
1
Abstract Factory – Gustavo Lopes Mourad
2
Gustavo Lopes Mourad © LES/PUC-Rio
Propósito Padrão de Criação “Fornecer uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar classes concretas.” Conhecido também como Kit 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
3
Gustavo Lopes Mourad © LES/PUC-Rio
Motivação Como garantir uma interface que funcione para diversos “look-and-feels” (Motif, Qt (KDE), Windows, etc.) ? 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
4
Gustavo Lopes Mourad © LES/PUC-Rio
Aplicabilidade Diminuir acoplamento entre sistemas Revelar somente as interfaces (sem as implementações) ao disponibilizar uma API Garantir que uma família de objetos seja sempre utilizada em conjunto 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
5
Gustavo Lopes Mourad © LES/PUC-Rio
Estrutura Diagrama de classes 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
6
Participantes e Colaborações
Fábrica Abstrata – Interface para operações que criam Objetos-produto abstratos Fábrica Concreta – Implementa a Fábrica Abstrata. Produto Abstrato – Interface para um Objeto-Produto Produto Concreto – Implementa um Objeto-Produto a ser criado Cliente – Utiliza as interfaces Colaborações Abstract Factory delega a criação de novos objetos para Concrete Factory Cada Produto precisa de uma Fábrica específica 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
7
Gustavo Lopes Mourad © LES/PUC-Rio
Conseqüencias Isolamento das classes concretas Diminuição do acoplamento entre sistemas Controle sobre criação de novos objetos Facilita a troca de implementações A troca de implementações não afeta a classe cliente Promove harmonia entre objetos Assegura que um conjunto de objetos sempre trabalharão da forma a qual foram projetados Diminui a flexibilidade dos objetos criados Interface da Fábrica deveria ser extendida 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
8
Gustavo Lopes Mourad © LES/PUC-Rio
Exemplo de Código 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
9
Gustavo Lopes Mourad © LES/PUC-Rio
Referências Gamma, E; Helm, R; Johnson, R; Vlissides, J; Design Patterns – elements of reusable object-oriented software; Addison Wesley Longman, Inc., 1995. Freeman, E; Freeman, E; Bates, B; Sierra, K; Head First Design Patterns, O’Reily Media, Inc 25/03/2017 Gustavo Lopes Mourad © LES/PUC-Rio
10
Nome do Autor © LES/PUC-Rio
Fim Dúvidas? 25/03/2017 Nome do Autor © LES/PUC-Rio
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.