State pattern

Niente fonti!
Questa voce o sezione sull'argomento programmazione non cita le fonti necessarie o quelle presenti sono insufficienti.
Schema UML del design pattern State

Nella programmazione orientata agli oggetti, lo State è un design pattern comportamentale. Esso consente ad un oggetto di cambiare il proprio comportamento a run-time in funzione dello stato in cui si trova.

Struttura

  • Context: Definisce la classe del client e mantiene un riferimento ad un ConcreteState.
  • State: Definisce l'interfaccia, implementata dai ConcreteState, che incapsula la logica del comportamento associato ad un determinato stato.
  • ConcreteState: Implementa il comportamento associato ad un particolare stato.

Benefici e conseguenze

Tra i benefici dell'adozione di questo design pattern vi sono:

  • Il comportamento associato ad uno stato dipende solo da una classe (ConcreteState)
  • La logica che implementa il cambiamento di stato viene implementata in una sola classe (Context) piuttosto che con istruzioni condizionali (if o switch) nella classe che implementa il comportamento.
  • Evita stati incoerenti.

Tra le conseguenze:

  • Incrementa il numero delle classi.

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su state pattern