Un interessante carrellata di papers sull'argomento in oggetto:
Da complementare con la lettura del pattern State da Design Patterns: Elements of Reusable Object-Oriented Software by ErichGamma, RichardHelm, RalphJohnson, and JohnVlissides (the GangOfFour)