Devo progettare un gruppo di tipi di controllo utente, ognuno dei quali condivide alcune proprietà comuni, ma alcune di esse hanno proprietà uniche speciali.
Ad esempio, le proprietà comuni a tutti i controlli sono titolo, didascalia, lunghezza del campo, ecc. Ma per tipi specifici come Dropdown, FileUpload, a parte le proprietà comuni, hanno il loro insieme univoco di proprietà come voci di elenco, destinazione percorso cartella, ecc.
Ho circa 20 controlli e devo progettare anche per l'estensibilità. L'unica cosa che cambia tra i vari tipi sono le loro proprietà. Nient'altro. Potrei usare l'ereditarietà semplice. Ma è quello il modo giusto, che porta ad avere oltre 20 tipi concreti e ad aumentarli nel tempo? O c'è qualche modello specifico che sarebbe consigliabile per questo caso d'uso?