Pattern State

1176 palavras 5 páginas
Pattern State

Vamos continuar com a série Design Patterns apresentando o padrão State, não é um padrão com um grau de dificuldade alta mais não é tão simples como o singleton exibido no ultimo artigo.
O padrão state permite que um objeto altere o seu comportamento quando o seu estado interno muda. O objeto parecerá ter mudado de classe.
O padrão encapsula os estados em classes separadas e delega as tarefas para o objeto que representa o estado atual, nós sabemos que os comportamentos mudam juntamento com o estado interno.
A baixo temos o diagrama de classe.

Obs: Diagrama resumido para termos só o necessário para representação e ficar fácil o entendimento.
Vamos analisar o diagrama.
O contexto é a classe que pode ter vários estados internos diferentes.
A interface estado define uma interface comum para todos os estados concretos. Como são intervambiaveis, todos devem implementar a mesma interface.
Os estado concretos (podemos ter varios estados concretos) lidam com as solicitações provenientes do contexto. Cada estado concreto fornece a sua própria implementação de uma solicitação. Assim, quando o contexto muda de estado, seu comportamento também muda.
Sempre que uma solicitação() é feita ao contexto, ela é delegada ao estado apropriado para ser processado.
Agora vamos imaginar um cenário, vamos imaginar uma conta corrente bem simples com opção de depositar e sacar dinheiro e já imaginamos os estado que essa conta pode estar saldopositivo, saldonegativo e bloqueado.
Vou exibir uma implementação sem utilizar o padrão state para mostrar o quanto ficamos amarrados em ifs e cases deixando a nossa manutenção um pouco complicado pois você pode alterar algo e atrapalhar o funcionamento de tudo o que já estava funcionando e até mesmo validado. public enum ContaState
{
saldoPositivo, saldoNegativo, bloqueado
}

public class Conta
{
public Conta() { this.Saldo = 0; this.MeuEstado = ContaState.saldoPositivo; } public

Relacionados

  • Design patterns
    3726 palavras | 15 páginas
  • Eng de requisitos soa
    6773 palavras | 28 páginas
  • Applying mvc to evolutionary acquisition irpm
    2568 palavras | 11 páginas
  • Psicologo
    20030 palavras | 81 páginas
  • Orientador De Estudos APD2 2 Respostas
    3968 palavras | 16 páginas
  • Padrões de estrategia de software
    1087 palavras | 5 páginas
  • Adiministração
    303 palavras | 2 páginas
  • Implementing finalize and dispose to clean up unmanaged resources
    1037 palavras | 5 páginas
  • Spiro kostof
    922 palavras | 4 páginas
  • Ms application architecture
    173875 palavras | 696 páginas