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?