Questo titolo è un po 'complicato ... Quando scrivo un'interfaccia, è generalmente consigliabile restituire l'interfaccia più specifica possibile o meno?OO best practice per restituire un'interfaccia meno specifica quando si restituisce un'interfaccia
Per esempio, supponiamo
interface List2<T> extends List<T>
{
List<T> getRange(int startIndex, int endIndex);
}
sarebbe meglio cambiarlo a
interface List2<T> extends List<T>
{
List2<T> getRange(int startIndex, int endIndex);
}
modo che i chiamanti possono chiamare getRange
sul loro risultato, pur corrispondenza Lista polimorfico?
Il ritorno del tipo più specifico offre il maggior numero di spettatori. Chiunque desideri IEnumerable può consumare IList, ma non viceversa, quindi non capisco perché uno vorrebbe ampliare il tipo di reso più tardi. – mayu