Padrões GoF – Factory Method

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Engenharia de Software
Algoritmos e Estrutura de Dados I
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Projeto de Sistemas de Software Fernando de Freitas Silva
Padrões de Projeto Prototype.
Abstract Factory – Gustavo Lopes Mourad.
Projeto de Sistemas de Software Leandra Mara da Silva
Padrão Abstract Factory
Modelagem Orientada a Objetos
Mapeamento Objeto Relacional
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Eduardo Bezerra Padrões GoF (State) Eduardo Bezerra
Padrões GoF - Strategy.
Padrões GoF - Façade.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Chain of Responsibility
Atividade de Projeto Design
Complexidade de Algoritmos
RUP: Fluxo de Análise e Projeto
Observer Mantendo seus objetos atualizados
Geração de Código.
Projeto da Camada de Domínio
Sistemas Distribuídos
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte V Implementação (1)
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
GEJAVA IV SCJA – Certificação Sun java associado exame cx
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Análise e Projeto de Sistemas
Programação Orientada à Objetos
SISTEMAS DISTRIBUIDOS Aula 4
Filter Design Pattern.
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Sistemas operacionais
POO II JEAN CARLO MENDES
Decorator POO - Avançado.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Laboratório de Programação
Análise e Projeto de Sistemas
Construtores e Destrutores
Padrões de Projeto Abstract Factory.
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Factory.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra –
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: AbstractMethod Professores Eduardo Bezerra –
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
Jobson Ronan Padrões GoF Jobson Ronan
Solicitar o seu nome de usuário e senha pela sua ADO Envie um para sua ADO (sua organização de custódia) pelo endereço de que você registrou.
Introdução a Orientação a Objetos
2 – Revisão de Programação Orientada a Objetos
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Padrões de Projeto Aula 4 – Padrão Observer. PADRÃO OBSERVER Como manter objetos atualizados quando algo importante ocorre? Padrões de Projeto - Observer.
Aula 5 – Padrão Decorator
Aula 6 – Padrão Factory Method
Aula 7 – Padrão Abstract Factory
Aula 8 – Padrão Singleton
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Lúbia Vinhas Hazel Carvalho Crato Adaptações: Prof. Nécio de Lima Veras.
Padrões de Projeto Aula 5 – Padrão Decorator 1. QuickReview: Observer Definição: Quando usar? Tipo de padrão? Como? 2.
Jean Carlo mendes
Transcrição da apresentação:

Padrões GoF – Factory Method

Factory Method Quando uma parte de um SSOO precisa dos serviços de um objeto, essa parte envia mensagem para este último. No entanto para que um objeto receba mensagens, ele deve existir. Não faz sentido falar em “envio de mensagens” para um objeto que não existe. Para um objeto existir, ele deve ser instanciado a partir de uma classe. Instanciar uma classe significa criar um objeto dessa classe. Fisicamente falando, isso significa (1) alocar espaço em memória para armazenar o objeto e (2) iniciar o seu estado (ou seja, os valores de seus atributos). Após a instanciação, o objeto pode prover serviços para outros objetos. (ou seja, para sua região de código cliente)

Factory Method Entretanto, a operação de instanciação de um objeto pode ser bastante complexa. Além disso, pode ser que não seja adequado fazer com que uma região de código que necessite de um serviço tenha uma referência direta para a classe (objeto) que o fornece. Uma razão para isso pode ser o fato de que a forma de implementar tal serviço ser instável, no sentido de precisar ser alterada no futuro. Se a região de código instanciar diretamente a classe que lhe fornece determinado serviço, essa região fica definitivamente acoplada a essa classe fornecedora e a sua forma específica de prover o serviço requerido. Uma forma de resolver o problema descrito acima é através de uma fábrica de objetos...

Factory Method Uma fábrica de objetos corresponde a uma classe cuja responsabilidade é criar outros objetos, quando requisitada. Essa fábrica retorna o objeto criado na forma de uma referência para uma superclasse abstrata ou para uma interface. Dessa maneira, a região cliente, que previamente criava o objeto para lhe prover o serviço, agora fica dependente desse serviço através de um acoplamento abstrato. Com efeito, a classe que realmente fornece o serviço requerido pode ser substituída sem que a região de código cliente precise de modificação.

Factory Method Essa é a solução correspondente ao padrão Factory Method, cujo objetivo é definir uma interface para instanciar objetos. Note que a fábrica de objetos precisa fazer referência às classes concretas cujos objetos fornecem o serviço requerido, o que é um exemplo de acoplamento concreto. Entretanto, essa referência fica localizada em uma região de código particular (na fábrica de objetos) e é conseqüentemente aceitável. Note também que quaisquer mudanças nas classes que fornecem o serviço em questão ficam localizadas à fábrica de objetos e não afetam os clientes.

Factory Method Outro aspecto importante sobre o padrão Factory Method é que sua utilização adiciona complexidade ao projeto. Na verdade, essa é uma tônica na maioria dos padrões de projeto: eles adicionam flexibilidade às custas de adicionarem complexidade à solução. A decisão por utilizar esse padrão deve levar em consideração o fato de a classe que fornece o serviço ser realmente suscetível a mudanças futuras. Em caso contrário, a referência (instanciação) direta da classe que fornece o serviço (em vez de usar o Factory Method) é uma alternativa mais viável.

Factory Method - Estrutura