This chapter covers the State pattern.
GoF Definition
It allows an object to alter its behavior when its internal state changes. The object will appear to change its class.
Concept
The GoF definition is easy to understand. It states that an object can change what it does and this depends on its current state.
Suppose you are dealing with a large-scale application where the codebase is rapidly growing. As a result, the situation becomes complex and you may need to introduce lots of if-else blocks/switch statements to guard the various ...