<p>Name the design considerations in deciding between use of a <a href="http://en.wikipedia.org/wiki/Singleton_pattern" rel="noreferrer">singleton</a> versus a static class. In doing this, you're kind of forced to contrast the two, so whatever contrasts you can come up with are also useful in showing your thought process! Also, every interviewer likes to see illustrative examples. :)</p>

When the single class needs state.  Singletons maintain a global state, static classes do not.
For instance, making a helper around a registry class:  If you have  changable hive (HKey Current User vs. HKEY Local Machine) you could go:
```
```
RegistryEditor editor = RegistryEditor.GetInstance();
editor.Hive = LocalMachine
```
```
Now any further calls to that singleton will operate on the Local Machine hive.  Otherwise, using a static class, you would have to specify that Local Machine hive everytiem, or have a method like
```
ReadSubkeyFromLocalMachine
```
.