Factory apresentacao

9
Universidade Feevale Alunos: Sérgio Andrigo dos Santos Gabriel Schmitt Kohlrausch André Schmitz Disciplina: Técnicas Avançadas de Programação Professor: Marcelo Carboni Outubro, 2010. Design Patterns Factory

Transcript of Factory apresentacao

Page 1: Factory   apresentacao

Universidade Feevale

Alunos: Sérgio Andrigo dos Santos

Gabriel Schmitt Kohlrausch

André Schmitz

Disciplina: Técnicas Avançadas de Programação

Professor: Marcelo Carboni

Outubro, 2010.

Design Patterns

Factory

Page 2: Factory   apresentacao

2

Factory - Definição

• Define uma interface ou classe abstrata para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar.

• Na prática:

É uma forma de criar objetos deixando a decisão de qual classe concreta utilizar, por conta de regras

encapsuladas.

Este padrão estabelece uma forma de desenvolver objetos que são responsáveis pela criação de outros

objetos.

Page 3: Factory   apresentacao

3

Factory - Utilização

• Utilidade:

Quando você precisa criar objetos dinamicamente sem conhecer a classe de implementação.

• Exemplo:Necessidade de ter um objeto de conexão de dados, porém

a classe necessária para instanciar esse objeto depende do banco de dados a ser utilizado.

• Freqüência de uso:– Alta

Page 4: Factory   apresentacao

4

Factory - DiagramaParticipantes:

IProduct: Interface para

produtos que serão criados

ProductA e ProductB: Classes

que vão implementar a

interface Iproduct

Creator: Fornece a criação de

objetos concretos

Client: utiliza o Creator para

obter um objeto concreto do

FactoryMethod

Page 5: Factory   apresentacao

5

Factory – Demo 1

• Problema:

– Considere um mercado de classe alta que estoca e

vende carne de avestruz o ano todo.

– Essa loja possui um gerente de compras (comprador)

que garante o abastecimento o ano todo.

– A cada estação no ano a compra de carne deve ser

feita de uma região diferente:

• Inverno, Outono, Primavera: África do Sul

• Verão: Espanha

– Embora o produto seja rotulado a loja não se

interessa em saber a origem do produto.

Page 6: Factory   apresentacao

6

Factory – Demo 1

• Comparando com o diagrama:

Diagrama Exemplo

Client Loja

Creator Comprador

ProductA Fornecedor de carne da Espanha

ProductB Fornecedor de carne da África do Sul

Iproduct Fornecimento de carnes

Page 7: Factory   apresentacao

7

DEMO 1

Page 8: Factory   apresentacao

8

Factory – Demo 2

• Problema:

– Considere um sistema que tenha a capacidade de se

conectar e executar operações em vários SGDBs.

– Cada SGDB tem suas características próprias como

por exemplo string de conexão, métodos para

comandos sql, métodos para transações

– Devemos ter em todo sistema uma forma única

(objeto concreto) para realizar essas operações.

Page 9: Factory   apresentacao

9

DEMO 2