State pattern
Vai alla navigazione
Vai alla ricerca
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[modifica | modifica wikitesto]
- 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[modifica | modifica wikitesto]
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[modifica | modifica wikitesto]
- Wikimedia Commons contiene immagini o altri file su state pattern