Acepto, que la programación en contra de interfaces es una buena práctica. En la mayoría de los casos, en Java, la "interfaz" en este sentido significa la interfaz de construcción del lenguaje, de modo que usted escribe una interfaz y una clase de implementación, y que utiliza la interfaz en lugar de la clase de implementación la mayor parte del tiempo.Programación contra interfaces: ¿Escribes interfaces para todas tus clases de dominio?
Me pregunto si esta es una buena práctica para escribir modelos de dominio también. Entonces, por ejemplo, si tiene un cliente de clase de dominio y cada cliente puede tener una lista de pedidos, ¿podría generalmente escribir también interfaces ICustomer y IOrder? ¿Y también tendría el Cliente una lista de IOrders en lugar de Orders? ¿O usaría interfaces en el modelo de dominio, solo si está realmente dirigido por el dominio, p. tienes al menos dos tipos diferentes de pedidos? En otras palabras, ¿usaría interfaces solo por necesidades técnicas en el modelo de dominio, o solo cuando sea realmente apropiado con respecto al dominio real?
¿Qué pasa con este prefijo sobre nombres de interfaz? ¿Desde cuándo estaba bien utilizar la notación húngara? – grom
@grom - Odio ver eso en el código Java también. Es una convención de la programación COM de Microsoft. –
¿Le molesta verlo en Java, pero le gusta en otros idiomas, como C#? Eso no tiene sentido ... De hecho, lo encuentro útil cuando veo código desconocido. Puedo decir de un vistazo qué es una interfaz y qué es una implementación concreta (especialmente si agregan Impl al final, que es la convención donde trabajo) – hhafez