Which option is good in terms of software design?
Replace Conditional with Polymorphism in a proper way?
What are some strategies for eliminating switches in polymorphic dynamic code spread across multiple layers?
Workaround for casting method parameter interface to desired concete type in polymorphic design?
Is the Data/Object Anti-Symmetry a Java problem or a general problem?