As we approach the end of our thorough Guide to Software Design Patterns series we're going to look into the state design pattern in today's article. The state pattern allows you to programmatically change the behavior of a class based on when an underlying state changes. In this article we'll... continue reading →