Object behave or looks differently depends on conditions statements.
This conditions duplicates over the code.
Consumer does not care about implementation. Only object knows about its states.
Encapsulate what Varies
Favor Composition over Inheritance
The state pattern can be interpreted as a strategy pattern.
Which is able to switch the current strategy through invocations of methods defined in the pattern's interface.