SW Design Pattern

Perchè utilizzare il pattern state


La domanda che sorge ad uno sviluppatore è perchè dovrei usare questo pattern. Per prima cosa voglio chiarire che l'utilizzo del pattern è tanto più efficace quando più la macchina a stati è grande e complicata.Normalmente le macchine a stati sono implementate con un enumerativo ed uno switch che si perde a vista d'occhio. La crescita del numero di stati incide direttamente sulla manutenibilità del software.Con il pattern state è possibile dividere in più file la macchina a stati, avendo una classe per stato . E' inoltre possibile sulle varie classi suddividere i campi privati che servono senza doverli tutti dichiarare in testa al programma. Se alcuni campi servono a più di uno stato si può opportunamente usare la classe Context o sottosezioni di essa. Da un punto di vista computazionale con il pattern state è potenzialmente possibile caricare uno stato solo al momento della transizione in esso. Ammetto che questa è una situazione molto al limite ma del tutto possibile.Invito ad utilizzare il pattern provando ad aggiungere uno stato nuovo alla macchina a stati. Apprezzerete senza dubbi la pulizia e i tempi dell'operazione