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

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

1 Padrões GoF (State) Eduardo Bezerra

Apresentações semelhantes


Apresentação em tema: "1 Padrões GoF (State) Eduardo Bezerra"— Transcrição da apresentação:

1 1 Padrões GoF (State) Eduardo Bezerra

2 2 State Intenção: permitir que um objeto altere seu comportamento em função de uma mudança no seu estado. Solução: 1.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. 2.Ligar este objeto a seu estado corrente utilizando o relacionamento de composição. 3.Cada subclasse da hierarquia deve implementar o comportamento correspondente a seu estado.

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

4 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 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 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 "1 Padrões GoF (State) Eduardo Bezerra"

Apresentações semelhantes


Anúncios Google