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

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

Eduardo Bezerra edubezerra@gmail.com Padrões GoF (State) Eduardo Bezerra edubezerra@gmail.com.

Apresentações semelhantes


Apresentação em tema: "Eduardo Bezerra edubezerra@gmail.com Padrões GoF (State) Eduardo Bezerra edubezerra@gmail.com."— Transcrição da apresentação:

1 Eduardo Bezerra edubezerra@gmail.com
Padrões GoF (State) Eduardo Bezerra

2 State Intenção: permitir que um objeto altere seu comportamento em função de uma mudança no seu estado. Solução: Criar uma hierarquia de classes separada para representar os estados de um objeto. Cada subclasse da hierarquia representa um dos possíveis estados do objeto. Ligar este objeto a seu estado corrente utilizando o relacionamento de composição. Cada subclasse da hierarquia deve implementar o comportamento correspondente a seu estado.

3 Estrutura do State Context State state request() handle()
ConcreteStateA ConcreteStateB handle() handle() state.handle();

4 State (conseqüências)
Localiza o comportamento de um estado específico e divide o comportamento por diferentes estados. O padrão State coloca todo comportamento associado a um estado particular em um objeto. Assim, todo código de um estado específico fica em uma subclasse da classe State, podendo ser adicionados novos estados e transições; Faz a transição de estados explicitamente;

5 State (aplicabilidade)
Quando o comportamento de um objeto depende de seu estado, e este comportamento deve ser mudado em tempo de execução conforme as mudanças ocorridas em seu estado; Quando operações possuem comandos condicionais muito grandes, que dependem do estado do objeto. Este estado é usualmente representado por uma ou mais constantes enumeradas. Freqüentemente, muitas operações irão conter a mesma estrutura condicional. State coloca cada ramo dessa estrutura em uma classe separada. Dessa maneira, o estado do objeto pode ser tratado como um objeto.

6 State (aplicabilidade)
Uma companhia de aviação tem os seus clientes categorizados em função do número de pontos acumulados: MembroPrata (<=1000), MembroOuro (>1000 e <=5000), MembroPlatina (>5000). Existe a necessidade de uma operação getPreço(), que interroga um membro sobre o desconto aplicável em uma determinada viagem.


Carregar ppt "Eduardo Bezerra edubezerra@gmail.com Padrões GoF (State) Eduardo Bezerra edubezerra@gmail.com."

Apresentações semelhantes


Anúncios Google