Non sono sicuro di aver capito bene. Per osservare i principi SOLID corretti, sono vietato ereditare da classi concrete ? Significa che ogni classe concreta che ho più o meno è sealed
(o almeno considerata sealed
)?
Questo mi confonde perché ho incontrato questo codice dal nostro repository:
class FontList : ObservableCollection<string>
{
public FontList()
{
foreach (FontFamily f in Fonts.SystemFontFamilies)
{
this.Add(f.ToString());
}
}
}
Che eredita da ObservableCollection<string>
, una classe concreta (corretta?). Comunque guardando ObservableCollection:
[Serializable]
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
Sta ereditando da Collection<T>
, che è anche una classe concreta. Qualcuno può spiegare la corretta interpretazione del DIP, specialmente per quanto riguarda l'ereditarietà della classe concreta?