We are using Angular for frontend dev. Usually we have a unique model for a feature and using a status attribute to display buttons, read-only fields, visibility blocks etc. (predicates based on status) One of us proposed to model each state as a Class (with one base class) : Draft, Published, Finished for example (make impossible state impossible) When loading from HTTP we are using the status field to instantiate the right class In our experiment, we are using Angular ngComponentOutlet to display the components based on the class type I also read an example component stores and Elm. In Elm it seems natural. Using this pattern with typescript angular ... seems adding more complexity than necessary. That's why I'm asking the community. Do you have any feedbacks on using separate classes for each state and polymorphism ? Continue reading...