It depends, I prefer switches with a single line, which call out to some service to be preferable to the State pattern. This is because the State pattern encourages you to design these &quot;everything and the kitchen sink&quot; style classes.<p>It&#x27;s a bit crazy to implement the State pattern than have the various state object just do single calls (or no-ops) when the switching has been implemented to be readable.<p>Note: if your language doesn&#x27;t support enumerations and switching over them then the OO pattern may be better. If I didn&#x27;t had static analysis telling me when I&#x27;ve missed a state then it&#x27;s a bug waiting to happen. The State pattern makes a missing state hard to miss ;)