Ese título es un poco complicado ... Cuando escribo una interfaz, ¿es una buena práctica devolver la interfaz más específica posible o la menos?OO mejor práctica con respecto a la devolución de una interfaz menos específica al devolver una interfaz
Por ejemplo, supongamos
interface List2<T> extends List<T>
{
List<T> getRange(int startIndex, int endIndex);
}
sería mejor cambiarlo a
interface List2<T> extends List<T>
{
List2<T> getRange(int startIndex, int endIndex);
}
de manera que las personas que llaman pueden llamar getRange
en su resultado, sin dejar de juego Lista polimórfica?
Devolver el tipo más específico le proporciona la mayor audiencia. Cualquiera que quiera IEnumerable puede consumir IList, pero no al revés, así que no entiendo por qué uno querría ampliar el tipo de devolución más tarde. – mayu