Factory.

Slides:



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

PADRÕES DE PROJETO..
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Java – Classes Abstratas
Projeto de Sistemas de Software
Factory Method Projeto de Sistemas de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Padrões de Projeto Prototype.
Padrão Abstract Factory
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
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.
Padrões GoF - Strategy.
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.
Padrões GoF – Factory Method
Polimorfismo e Classes Abstratas Profa
Diagrama de Classes.
Wagner Santos C. de Jesus
Geração de Código.
CRIANDO OBJETOS EM JAVA
DIAGRAMA DE COMPONENTES
Polimorfismo em C#.
Programação Orientada a Objetos com Java
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
Classes, Objetos, Atributos e Métodos JAVA
Professora Lucélia Oliveira
Orientação a Objetos Parte I
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Wagner Santos C. de Jesus
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
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),
Interfaces POO Avançado.
Classes Abstratas e Interface
Padrões de Projeto Abstract Factory.
Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )
Padrões de Projeto.
Modificadores Programação II.
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 Java: Modificador abstract para classes e métodos Alcides Calsavara.
Padrões de Projeto de Software Orientado a Objetos
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
2 – Revisão de Programação Orientada a Objetos
Módulo II Capítulo 1: Orientação a Objetos
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Implementação Orientada a Objetos – Aula 09 Pacotes Prof. Danielle Martin Universidade de Mogi das Cruzes
Aula 6 – Padrão Factory Method
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Aula 7 – Padrão Abstract Factory
Padrões Criacionais Abstraem o processo de criação de instâncias (objetos), oferecendo flexibilidade no que é criado, por quem, como e quando.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
1 Padrões de Projeto de Software Orientado a Objetos Programação Orientada a Objetos Prof. Fabio Kon - IME/USP.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Factory

Funcionamento De forma geral todos os padrões Factory (Simple Factory, Factory Method, Abstract Factory) encapsulam a criação de objetos. O padrão Factory Method por sua vez encapsula a criação de objetos, no entanto, a diferença é que neste padrão encapsula-se a criação de objetos deixando as subclasses decidirem quais objetos criar. O Diagrama de classe abaixo mostra mais detalhes sobre o funcionamento do padrão Factory Method.

No diagrama de classe acima temos a classe de criador abstrata que é a Creator que define um método fábrica abstrata que as subclasses implementam para criar um produto (factoryMethod) e pode possuir um ou mais métodos com seus devidos comportamentos que chamarão o factoryMethod.

Normalmente o método factoryMethod do Creator também possui um Product abstrato que é produzido por uma subclasse (ConcreteCreator). Nota-se que cada ConcreteCreator produzirá seu próprio método de criação. Segundo o GOF (Group Of Four) o padrão Factory Method é: “Um padrão que define uma interface para criar um objeto, mas permite às classes decidirem qual classe instanciar. O Factory Method permite a uma classe deferir a instanciação para subclasses”.

Exemplo de Implementação Segue abaixo um exemplo de implementação em Java utilizando o Padrão Factory Method. Inicialmente define-se abaixo os produtos abstratos e concretos que serão usados pela factory.

public abstract class Pessoa { public String nome; public String sexo; } class Homem extends Pessoa { public Homem(String nome) { this.nome = nome; System.out.println(“Olá Senhor ” + this.nome); class Mulher extends Pessoa { public Mulher(String nome) { System.out.println(“Olá Senhora ” + this.nome);

temos a implementação da primeira parte do padrão Factory Method temos a implementação da primeira parte do padrão Factory Method. Nesse exemplo criou-se os Produtos (abstratos e concretos) que executam a decisão tomada na factory. Em tempo de execução não sabemos quem será chamado, ao invés de termos if’s e else’s no cliente, temos toda a lógica de decisão na factory que é mostrada abaixo.

public static void main(String args[]) { class FactoryPessoa { public Pessoa getPessoa(String nome, String sexo) { if (sexo.equals(“M”)) return new Homem(nome); if (sexo.equals(“F”)) return new Mulher(nome); } Abaixo segue um exemplo de execução desse padrão descrito acima: public class TesteApp { public static void main(String args[]) { FactoryPessoa factory = new FactoryPessoa(); String nome = “Carlos”; String sexo = “M”; factory.getPessoa(nome, sexo);

criou-se uma factory com os dados acima criou-se uma factory com os dados acima. Baseado na condição “sexo” temos a criação do objeto Homem que faz a saudação correta. Veja que toda a parte de decisão, ou a sujeira, fica tudo na fábrica para que ela possa decidir o que fazer.

Vantagens do Padrão Factory Method O Factory Method é bastante utilizado em diversos projetos, até mesmo nos casos em que temos apenas um Creator (diagrama acima), pois mesmo nessas condições o padrão nos oferece um meio de desligar a implementação de um Product. Adicionando ou alterando Products isso não irá afetar o Creator, pois eles não estão fortemente ligados.

Vantagens do Padrão Factory Method Com o padrão Factory Method podemos encapsular o código que cria objetos. É muito comum termos classes que instanciam classes concretas e essa parte do código normalmente sofre diversas modificações, portanto nesses casos usamos um Factory Method que encapsula esse comportamento de instanciação.

Vantagens do Padrão Factory Method Usando o Factory Method temos o nosso código de criação em um objeto ou método, evitando assim a duplicação e além disso temos um local único para fazer manutenção. O padrão também nos dá um código flexível e extensível para o futuro.

Conclusão o padrão Factory Method oferece um modo de encapsular as instanciações de tipos concretos. O Creator nos oferece um método para criação de objetos, os demais métodos operam em cima das subclasses de Creator, ou seja, os ConcreteCreator, fabricados pelo factoryMethod. Além disso apenas os ConcreteCreator implementam o método de fábrica e criam Products como pode-se observar no diagrama de classe do padrão.