Hay dos formas de elegir entre la clase abstracta o la interfaz. solución de Microsoft y la solución de Oracle:Clase o interfaz abstracta. ¿Qué camino es correcto?
Microsoft, las directivas de diseño:
hace uso de resumen (MustInherit en Visual Basic) clases en lugar de interfaces para desacoplar el contrato de implementaciones.
http://msdn.microsoft.com/en-us/library/ms229013.aspx
Oracle, Los Tutoriales de Java:
Si una clase abstracta contiene sólo declaraciones de métodos abstractos, debe ser declarada como una interfaz en su lugar.
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Mi pregunta es qué camino es el correcto? ¿Solución de Microsoft u Oracle? Tenga en cuenta que creo que elegir entre la clase abstracta o la interfaz no debe depender del lenguaje de programación (Java o C#).
+1 "Las buenas prácticas para trabajar en un solo producto o sistema variarán un poco" –