Tengo un amigo que acaba de entrar en el desarrollo .NET después de haber desarrollado en Java para las edades y, después de mirar un poco de su código que se dio cuenta de que está haciendo lo siguiente con bastante frecuencia:A diferencia de estilo: IDictionary vs Diccionario
IDictionary<string, MyClass> dictionary = new Dictionary<string, MyClass>();
Declara el diccionario como la Interfaz en lugar de la Clase. Normalmente yo haría lo siguiente:
Dictionary<string, MyClass> dictionary = new Dictionary<string, MyClass>();
sólo haría uso de la interfaz IDictionary cuando es necesario (por ejemplo, por ejemplo para pasar el diccionario a un método que acepta una interfaz IDictionary).
Mi pregunta es: ¿hay algún mérito en su forma de hacer las cosas? ¿Es esta una práctica común en Java?
Para variables locales, realmente no tiene sentido. – Joren
Dupe: http://stackoverflow.com/questions/1484445/why-are-variables-declared-with-the-interface-name-in-java –
Una buena práctica ** PERO ** tenga cuidado con el costo de rendimiento: http : //www.nimaara.com/2016/03/06/beware-of-the-idictionary-tkey-tvalue/ – MaYaN