title: Monostate vs. Singleton
body: <p>What are the scenarios when one would use a Monostate pattern instead of singleton inorder to maintain a global object?</p>
  
  <p>Edit:
  I know what Singleton and Monostate patterns are. Have also implemented Singleton in quite a few scenarios. Just want to know the scenarios (case examples) where MonoState pattern needs to be implemented.</p>
  
  <p>For eg. I need to maintain list of columns per screen in my windows forms app. I could use a Singleton Dictionary in this case. However, I am storing a List in the static global var and I wanted to provide indexers (since I need to dynamically add new entry to the list if key is not present) where I could specify ScreenDetails.ScreenName as a key &amp; get the ScreenDetails.ColumnsTable. Since indexers can't operate on a static class I changed the pattern to Monostate. </p>
  
  <p>So I would like to know which other scenarios may compel a user to use Monostate instead of Singletons.</p>