Você está na página 1de 18

Design Patterns

Marcio Napoli
Modelagem
Design Patterns
de Projetos

Creational Patterns
Características
 Associados ao processo de criação de objetos
 Tornam um sistema independente de como seus
objetos são criados, compostos e representados

Padrões de criação
 Factory Pattern
 Abstract Factory Pattern
 Singleton Pattern
Modelagem
Design Patterns
de Projetos

Factory Pattern
Objetivo:
 Definir uma interface para criar objetos, a classe
instancia as subclasses
O cliente não necessita saber a classe concreta
que deverá ser instanciada e retornada
O cliente conhece apenas os métodos públicos
da interface
Modelagem
Design Patterns
de Projetos

Factory Pattern
Benefícios:
 Remove a necessidade de ligar classes específicas da
aplicação no código. O código interage apenas com a
interface de retorno, portanto irá trabalhar com
qualquer classe que implementar a interface
 Como a criação dos objetos ocorre dentro da classe,
torna-se mais flexível do que criar um objeto
diretamente, isso permite que a subclasse disponibilize
uma versão estendida de um objeto
Modelagem
Design Patterns
de Projetos

Factory Pattern
Cenários:
 A classe não consegue antecipar a classe dos objetos
a serem instanciados
 A classe necessita das subclasses para especificar o
objeto a ser instanciado
 Classes assimilam a responsabilidade para uma das
suas subclasses e você quer localizar o conhecimento
de qual subclasse deve ser delegada
Modelagem
Design Patterns
de Projetos

Factory Pattern
Modelagem
Design Patterns
de Projetos

Abstract Factory Pattern


Objetivo:
 Disponibilizar uma interface utilizada para criar famílias de objetos
relacionados ou dependentes, sem especificar suas classes
concretas
Para um conjunto de classes abstratas, esse padrão é uma
técnica para criar instâncias das classes abstratas de um
conjunto equivalente de subclasses
Em algumas situações você pode precisar criar um objeto
sem ter que conhecer qual das classes concretas deve ser
instanciada
Modelagem
Design Patterns
de Projetos

Abstract Factory Pattern


Benefícios:
 Isola o cliente das classes concretas
 Facilita a troca das famílias de objetos
 Promove a consistência entre objetos
Modelagem
Design Patterns
de Projetos

Abstract Factory Pattern


Cenários:
 O sistema necessita ser independente de como o objeto serão
criados, compostos e representados
 O sistema necessita ser configurável com uma das múltiplas
famílias de objeto
 Pretende-se utilizar a família dos objetos junto e essa restrição
necessita ser reforçada
 Você quer provê um conjunto de biblioteca de objetos que não
mostre a implementação, somente as interfaces
Modelagem
Design Patterns
de Projetos

Abstract Factory Pattern


Modelagem
Design Patterns
de Projetos

Singleton
Objetivo:
 Permite que a classe tenha apenas uma instância e
disponibiliza um ponto de acesso global

Todos os objetos que utilizam essa classe estão


usando a mesma instância
Modelagem
Design Patterns
de Projetos

Singleton
Benefícios:
 Controle de acesso para uma única instância da classe
 Permite refinamento das operações e representação
 Pode permitir um número variável de instâncias
 Mais flexível que os métodos de classe
Modelagem
Design Patterns
de Projetos

Singleton
Cenários:
 O cenário mais apropriado é quando uma única
instância da classe é necessária e deve ser
acessível para os clientes de um ponto
conhecido
Modelagem
Design Patterns
de Projetos

Singleton
Modelagem
Design Patterns
de Projetos

Bibliografia

Metsker, J. S. Design Patterns: Java Workbook.


Addison Wesley. 2002.

Larman, C. Applying UML and Patterns: An


Introduction to Object-Oriented Analysis and Design
and the Unified Process.

Allen, P. Sun Certified Enterprise Architect For


J2EE.
Modelagem
Design Patterns
de Projetos

Links

 http://www.patterndepot.com/put/8/JavaPatterns.htm

 http://java.sun.com/blueprints/patterns/

 http://www.antipatterns.com/
Modelagem
Design Patterns
de Projetos

Perguntas?
Modelagem
Design Patterns
de Projetos

Obrigado
Marcio Napoli
napoli@stela.org.br

Você também pode gostar