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
Categoria:Design pattern