State Pattern
A behavioral pattern that allows an object to change its behavior when its internal state changes, as if the object changed its class.
A behavioral pattern that allows an object to change its behavior when its internal state changes, as if the object changed its class.