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

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

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