1.1 States' protocol factorization
1.2 Addition or removal of a state does not need code modification
2.1 Possibility of state modification at execution time without deletion
2.2 State behavior decouplingThanks to the inheritance links, we are able to distinct the movies to its states. In these case, the addition of a new state does not imply code modification.
The VOD class manages its state thanks to an enumeration. In doing so, the solution imposes a ``switch'' statement, and so, the category changing is possible. The problem of this solution concerns the extensibility. Indeed, if a new category is added, the VOD class must be modified to manage the new type.