Versioni
| Conosciuto anche comeObjects for States. Molto simile al PatternPluggableObject. IntentoIl design pattern State cambia il comportamento di un oggetto (il risultato dell'operazione Request dell'oggetto Context) al cambiare dello stato (ConcreteStateA, ConcreteStateB, ...) Lo state corrente (che può essere ConcreteStateA, ConcreteStateB, ...) è stabilito a run-timequindi questo design pattern è classificato rispetto allo scopo (vedi ClassificazioneDeiDesignPattern#ClassiOggetti) come rivolto agli oggetti. Rispetto al fine questo design pattern è classificato tra i ClassificazioneDeiDesignPattern#Comportamentali. Diagramma UML
Un'altro diagramma equivalente qui . MotivazioneQuando un oggetto (Context) può assumere a run-time stati diversi (ConcreteStateA, ConcreteStateB, ...) e a seconda dello stato corrente la medesima operazione (il metodo Request di Context) ha comportamenti distinti (ConcreteStateA.Handle() piuttosto che ConcreteStateB.Handle() ...), invece di tempestare il codice di implementazione dei metodi dell'oggetto di If per testare lo stato corrente il design pattern State definisce una classe base per ogni stato (ConcreteStateA, ConcreteStateB, ...) e vi implementa il relativo comportamento. Esempi d'uso in .NETNessun esempio trovato. Note sulla implementazione in .NETDel codice .NET di esempio è disponibile qui . Relazione con altri design patternIl PatternFlyweight spiega quando e come si possono condividere gli oggetti State. Gli oggetti State spesso impiegano il PatternSingleton. Vedi la mappa della RelazioneTraDesignPattern. ApprofondimentiDomande di approfondimento
Link | UGIdotNETWikiUGIdotNETWiki è il WikiWiki italiano dedicato a .NET Se è la prima volta che senti parlare di Wiki, leggi il BenvenutoAiVisitatori e WikiInUnMinuto, oppure il ManualePassoPassoDelWiki. Argomenti Recenti | ||||||||||||||||||||||||||||||||||
| © 2008 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali | ||||||||||||||||||||||||||||||||||||