introdução padrões de projeto princípios de design pattern prof. wolley

23
Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

Upload: internet

Post on 22-Apr-2015

114 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

Introdução Padrões de Projeto

Princípios de Design Pattern Prof. Wolley

Page 2: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

Introdução Padrões de Projeto

• Um Design Pattern é uma técnica de modelagem de classes e objetos que resolve um problema comum a diversos tipos de aplicativos.

Page 3: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

Padrões ArquiteturaisFamílias de Padrões

• Gang Of Four – GOF• 23 – Padrões– Criação – Estrutura– Comportamento

Page 4: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

GOF – 23 Padrões de Projeto

Propósito

Escopo

Criação Estrutural Comportamental

Classe Factory Method Adapter InterpreterTemplate Method

Objeto Abstract FactoryBuilderPrototypeSingleton

AdapterBridgeCompositeFaçadeFlyweightProxy

Chain of ResposibilityCommandIteratorMediatorMementoObserverStrategyVisitor

Page 5: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• J2EE: – Business Delegate,– Composite Entity,– Composite View,– Data Access Object,– Fast Lane, – Reader,– Front Controller,– Intercepting Filter,– Model, view ,controller– Service Locator,– Session Façade,– Transfer Object,– Value List Handler, – View Helper

Padrões ArquiteturaisFamílias de Padrões

http://java.sun.com/blueprints/corej2eepatterns/Patterns/

Page 6: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

Princípios de Design

1. Programe para uma interface, não para um implementação

2. Prefira a composição de objetos à herança de classe

3. Encapsular o que varia

Page 7: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface (Superclasse), não para um implementação– Quando a herança é utilizada apropriadamente

todas as classes derivadas sobrescrevem os métodos da superclasse.

Page 8: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

Page 9: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

• Não declare variáveis como instâncias de classes concretas, mas para classes abstratas ou interfaces;

Page 10: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

• As classes ClienteDAO, ProdutoDAO e EstoqueDAO dependem da implementação concreta PostgreSQL

Page 11: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• Dependência da Implementação

1 º Princípios: Programe para uma interface, não para um implementação

Page 12: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• Mudanças muitas, vezes necessárias, pode desencadear um efeito colateral em classes dependentes.

1 º Princípios: Programe para uma interface, não para um implementação

Page 13: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

Page 14: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

• A interface representa uma abstração do comportamento de uma ou mais classes.

Page 15: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• Classes dependendo da interface

1 º Princípios: Programe para uma interface, não para um implementação

Page 16: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

1 º Princípios: Programe para uma interface, não para um implementação

Estrutura das coleções e mapas

Page 17: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

2º Princípio: Prefira a composição de objetos à herança

• Vantagens da Herança– Herança é definida estaticamente em tempo de

compilação;– é simples de usar uma vez que é suportada pela

linguagem;– Torna mais fácil de modificar a implementação

que esta sendo reutilizada;

Page 18: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• Desvantagem– As super classes definem parte da representação

física das suas subclasses. Certos aspectos herdados podem não fazer sentido em determinadas contextos;

2º Princípio: Prefira a composição de objetos à herança

Page 19: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

2º Princípio: Prefira a composição de objetos à herança

Page 20: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

2º Princípio: Prefira a composição de objetos à herança

Page 21: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

3º Princípio: Encapsular o que pode variar

Page 22: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

3º Princípio: Encapsular o que pode variar

Page 23: Introdução Padrões de Projeto Princípios de Design Pattern Prof. Wolley

• Olhar para uma classe, enxergar sua responsabilidade, abstrair suas possíveis alterações e criar uma nova classe.

• Se a sua classe precisa ter mais de uma responsabilidade, divida-as e as associe.

3º Princípio : Encapsular o que pode variar