See also: Strategy pattern, Dynamic classification, Run and return successor, Duality between state and class