Say you have an abstract base class Task which is a task a user can complete. There are two concrete Tasks: SimpleTask and ChecklistTask. What if you wanted the (ASP.NET) UI to show a different control based on which type of Task it is?
In WPF you could use DataTemplates, but what is a nice way to do it in ASP.NET? We are trying to avoid a switch statement by the way. We have other pieces of code with long switch statement which started out small, but grew in time. That’s what we’re trying to avoid.
Is there a design pattern for things like this? We can’t let the Task classes ‘know’ the UI classes because they’re are domain classes. Or is a switch statement the best we can do (if necessary hidden in a seperate ‘factory’ class)?
Something, somewhere, has to know how to map the Task subclass to the UI control. Period. The only question is where to put this knowledge.