Branching of types is discouraged because it is difficult to keep up to date as new types are entered. Using polymorphism is better because it is only necessary to ensure new classes implement all important virtual methods.