I have to design for a bunch of user control types, each of which share some common properties but some of which have special unique properties.
For example, the common properties across all the controls would be title, caption, field length, etc. But for specific types like Dropdown, FileUpload, apart from common properties, they have their unique set of properties like list items, destination folder path, etc.
I have around 20 controls and have to design for extensibility as well. The only thing which changes across the various types is their properties. Nothing else. I could use simple inheritance. But, is that the right way, leading to having 20+ concrete types and keep increasing them over time? Or is there any specific pattern that would be advisable for this use case?
-
2Inheritance is generally the way this is done in UI control hierarchies. In fact, it's the one area of computing where inheritance always seems to make sense.Robert Harvey– Robert Harvey06/03/2016 17:30:20Commented Jun 3, 2016 at 17:30
1 Answer 1
I'd go to simple inheritance, but maybe you can group some classes in subsets like visual studio does. For instance, you got Control as the parent class with the core properties and behavior for all controls: caption, location, etc.; in the other hand there's a class that inherits Control that acts as a parent for SaveFileDialog and OpenFileDialog, since those also have common characteristics.
I'd go pretty much the same way.
Explore related questions
See similar questions with these tags.