A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Padrões de Projeto Aula 3 – Padrão Strategy.

Apresentações semelhantes


Apresentação em tema: "Padrões de Projeto Aula 3 – Padrão Strategy."— Transcrição da apresentação:

1 Padrões de Projeto Aula 3 – Padrão Strategy

2 Resumo e Revisão Padrões de Projeto - Strategy Padrão Strategy

3 Strategy Definição: Quando usar? Tipo de padrão? Como?
Padrões de Projeto - Strategy Def: padrão que permite que o comportamento de uma classe (i.e., seu algoritmo) seja mudado em tempo de execução. Quando usar? Quando o algoritmo a ser usado deve ser escolhido em tempo de execução. Tipo de padrão? Comportamental (existem os de criação, comportamentais e estruturais) Como? Composição + Interfaces Programar para superclasses! Por que? Com a variável de referência de uma superclasse nós podemos instanciar objetos de sub-classe (que encapsulam diferentes algoritmos/estratégias) e atribuir a essa referência em tempo de execução. Com isto a estratégia é mudada.

4 Terminologia e Estrutura
interface Strategy class Context Padrões de Projeto - Strategy

5 Xadrez Interface Strategy: Class Context: or Class Piece: Main?
+move() Class Context: or Class Piece: -Strategy strategy Main? Padrões de Projeto - Strategy Quais os tipos de movimento nós temos no xadrez? Quais peças? Como ficaria o Main?

6 Mortal Kombat Padrões de Projeto - Strategy ShootBehavior
ShootWithArrow implements ShootBehavior  nightwolf ShootWithGun implements ShootBehavior  stryker, erronblack CastMagicBehavior CastFireball implements CastMagicBehavior  liu-kang, shang-tsung CastIce implements CastMagicBehavior  sub-zero Class Context ou Class Fighter -ShootBehavior shooter -CastMagicBehavior magic -shoot() -castMagic() -punch() -kick() -move() +doSomething(Input[] input)

7 Padrões de Projeto - Strategy

8 Compression tool file compression tool - where we create either zip or rar files Padrões de Projeto - Strategy CompressionStrategy +compressFiles(ArrayList<File> files): void ZipCompressionStrategy implements CompressionStrategy RarCompressionStrategy implements CompressionStrategy CompressionContext

9 Referências O capítulo 1 do livro “Padrões de Projeto – Use a Cabeça!”;  interessante para um “quickstart” em um padrão Padrões de Projeto - Strategy


Carregar ppt "Padrões de Projeto Aula 3 – Padrão Strategy."

Apresentações semelhantes


Anúncios Google