title: GOF State Pattern State Transition Implementation Issues
body: <p>Firstly, can anyone explain how a state object can be shared when the state object has no instance variables ? </p>
  
  <p>This text is taken from GOF, page 308, item 3 (consequences section): </p>
  
  <blockquote>
    <p>The state object can be shared.
    If state objects have no instance variabkes - that is, the state they
    represent is encoded entirely in their
    type - then contexts can share a
    state object. When states are shared in
    this way, they are essentially
    flyweight.</p>
  </blockquote>
  
  <p>Can anyone explain this text ?</p>
  
  <p>Secondly, what are the approaches to the state transition decision? I mean the decision of which next state to propagate? </p>
  
  <p>Please help. 
  Thanks. </p>