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?