I
design pattern offrono ad ogni sviluppatore software la possibilità di poter utilizzare metodi di progettazione efficaci, derivanti dalle esperienze decennali di developer "saggi", che hanno semplificato la vita a centinaia di colleghi, condividendo la loro profonda conoscenza dei problemi e delle possibili soluzioni riguardanti la progettazione. Con questo articolo cominceremo un piccolo, ma esplicativo viaggio all'interno dei pattern di progettazione più conosciuti, associando alla teoria qualche esempio che mi è sembrato interessante.
Il primo pattern di cui ci occuperemo è il
pattern State, generalmente definito pattern comportamentale a causa della propria sfera di azione. L'utilità di questo pattern si rivela quando ci troviamo a gestire oggetti il cui comportamento varia al variare dello stato (appunto,
State) in cui si trovano, oppure quando le operazioni sono implementate mediante largo uso di
statement condizionali, dipendenti dalle variabili di stato.
Analizziamo insieme la struttura di
State: l'interfaccia
pattern State definisce le operazioni da eseguire; le classi
ConcreteState implementano il pattern e corrispondono ai vari stati interni dell'oggetto; la classe
Context maschera e gestisce i vari stati dell'automa, agendo da interfaccia tra i client e gli oggetti
State.
<center>

</center>
Per comprenderne meglio il funzionamento utilizzeremo un esempio ideato da
Bob Tarr, docente universitario del Maryland (USA). Immaginate una classe che possegga due metodi
push() e
pull(), i cui comportamenti dipendono dallo stato dell'oggetto.Per inviare richieste all'oggetto si può utilizzare una banale interfaccia grafica con i pulsanti
Pull e
Push, il cui canvas cambia colore al variare dello stato in cui si trova l'oggetto. Gli stati sono rappresentati dai colori nero, rosso, blu e verde. Il consiglio che posso dare è di provare a riprodurre quanto descritto senza usare il
pattern State e, solo poi, andare a leggere l'esempio che riporterò nel prossimo articolo.