State
- design pattern comportamentale
- consente ad un oggetto di modificare il suo comportamento quando il suo stato interno cambia
Utile se
- il comportamento di un oggetto dipende dal suo stato e deve cambiare comportamento durante l’esecuzione del programma in base al suo stato
- le operazioni contengono statement condizionali grandi che dipendono dallo stato dell’oggetto
- lo stato è di solito rappresentato da costanti numerate
- State inserisce ciascun caso dello statement condizionale in una classe separata
- ciò consente di trattare lo stato dell’oggetto come un vero e proprio oggetto che può cambiare indipendentemente da altri oggetti
Approcci
- metodi state-sensitive → il comportamento dei metodi si adatta allo stato
- metodi state-specific → progettato ad hoc per specifici stati