A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto de Sistemas de Software Fernando de Freitas Silva

Apresentações semelhantes


Apresentação em tema: "Projeto de Sistemas de Software Fernando de Freitas Silva"— Transcrição da apresentação:

1 Projeto de Sistemas de Software Fernando de Freitas Silva
Factory Method Projeto de Sistemas de Software Fernando de Freitas Silva

2 Factory Method Propósito Também conhecido como:
Definir uma interface para criar um objeto, mas deixar que subclasses decidam que classe instanciar. Factory Method permite que uma classe delegue a responsabilidade de instanciação às subclasses. Também conhecido como: Virtual Constructor © LES/PUC-Rio

3 Motivação Framework para manipulação de documentos “genéricos”: Queremos delegar para a instanciação do framework a criação do documento, mas o gerenciamento em si é realizado no próprio framework. Existem coisas em comum nos métodos referentes à criação do manipulador e do documento anteriores? © LES/PUC-Rio

4 Aplicabilidade Uma classe não sabe que objeto, especificamente, deve
criar. Quando deseja-se postergar a criação para o “especialista” que cria o objeto: a subclasse com o factory method implementado. Quando deseja-se saber qual dos “especialistas” recebe a delegação de criação do objeto, e em que lugar (do sistema) isso é definido. © LES/PUC-Rio

5 Estrutura © LES/PUC-Rio

6 Participantes Product (Document) ConcreteProduct (MyDocument)
Define a interface dos objetos que o factory method cria ConcreteProduct (MyDocument) Implementa a interface do produto. Creator (Application) Declara o factory method, o qual retorna um objeto do tipo Product. Pode chamar o factory method para criar um objeto Product. ConcreteCreator (MyApplication) Redefine o factory method para retornar uma instância de um ConcretProduct. © LES/PUC-Rio

7 Colaborações Criador confia em suas subclasses para definir o método da fábrica de forma que ela devolva um exemplo de ConcretProduct apropriado. © LES/PUC-Rio

8 Conseqüências Factory Methods eliminam a necessidade de colocar classes específicas da aplicação no código O código só lida com a interface Produto O código pode portanto funcionar com qualquer classe ProdutoConcreto Provê ganchos para subclasses Criar objetos dentro de uma classe com um Factory Method é sempre mais flexível do que criar objetos diretamente O Factory Method provê um gancho para que subclasses forneçam uma versão estendida de um objeto © LES/PUC-Rio


Carregar ppt "Projeto de Sistemas de Software Fernando de Freitas Silva"

Apresentações semelhantes


Anúncios Google