Multimidia
1
Capítulo 1 – Conceitos- Básicos Padrões de Projeto GoF
Objetivo
• Prover uma interface para criar uma família de objetos relacionados ou dependentes sem especificar suas classes concretas
2
Padrões de Projeto - GoF
Descrição
• Semelhante ao padrão Factory Method
– Em vez do cliente chamar um método de criação (Factory Method), ele possui um objeto (Abstract Factory) e usa este objeto para chamar os métodos de criação . – Factory Method quer que você seja diferente (via herança) para criar objetos diferentes, o Abstract Factory quer que você tenha algo diferente
3 Padrões de Projeto - GoF
Descrição
• Se ele possuir uma referência a uma Abstract Factory diferente, toda a criação será diferente
4
Padrões de Projeto - GoF
Descrição
5
Padrões de Projeto - GoF
Exemplo: Look-and-feel (GUIs)
• Para look-and-feel diferentes (Motif, Windows, Mac, etc.) temos formas diferentes de manipular janelas, scroll bars, menus, etc. • Para que suporte qualquer look-and-feel, precisamos ter uma forma simples de criar objetos (relacionados) de uma mesma família. • Os objetos são dependentes porque não posso criar uma janela estilo Windows e um menu estilo Motif
6 Padrões de Projeto - GoF
Exemplo: Look-and-feel (GUIs)
• Java já resolveu este problema usando Abstract Factory. • Uma classe (abstrata) (ou interface, em Java) "Abstract Factory" define uma interface para criar cada tipo de objeto básico (widgets) • Também tem uma classe abstrata para cada tipo de widget (window, scroll bar, menu, ...) • Há classes concretas para implementar cada widget em cada plataforma (look-and-feel)
7 Padrões de Projeto - GoF
Exemplo: Look-and-feel (GUIs)
• Clientes chamam a Abstract Factory para cria objetos
– Uma Factory concreta cria os objetos concretos apropriados.
8
Padrões de Projeto - GoF
Exemplo: Look-and-feel (GUIs)
9
Padrões de Projeto - GoF
Abstract Factory
Quando um sistema deve