Ci sono due modi per scegliere tra classe astratta o interfaccia. soluzione di Microsoft e la soluzione Oracle:Classe astratta o interfaccia. Qual è il modo corretto?
Microsoft, disegno linea guida:
utilizzati astratta (MustInherit in Visual Basic) classi invece di interfacce per disaccoppiare il contratto da implementazioni.
http://msdn.microsoft.com/en-us/library/ms229013.aspx
Oracle, i tutorial Java:
Se una classe astratta contiene solo dichiarazioni di metodo astratto, dovrebbe essere dichiarata come interfaccia, invece.
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
La mia domanda è: in che modo è corretto? Soluzione Microsoft o Oracle? Nota che penso che scegliere tra classe astratta o interfaccia non dipenda dal linguaggio di programmazione (Java o C#).
+1 "Le buone pratiche per lavorare su un singolo prodotto o sistema possono variare leggermente" –