In che modo il principio di inversione di dipendenza funziona in lingue senza interfacce?

5

In C # / Java, il principio di inversione delle dipendenze è spesso dimostrato da classi di alto livello che dipendono su un'interfaccia / astrazione (che possiede). Le classi di basso livello implementeranno l'interfaccia, invertendo così la dipendenza.

Mi chiedo, come viene applicato nei linguaggi orientati agli oggetti senza interfaccia? Ad esempio, non sono un esperto di Ruby, ma sembra che in questa lingua non sia possibile definire interfacce come in Java / .NET

    
posta Louis Rhys 17.04.2013 - 04:00
fonte

1 risposta

7

Anche se non hai interfacce esplicite in linguaggi dinamici, il principio di inversione delle dipendenze può essere seguito scrivendo il codice client con una rappresentazione astratta della dipendenza , che i "implementatori" concreti aderire alla digitazione anatra.

In un certo senso, questo è il default in un linguaggio dinamico, e si potrebbe sostenere che il principio di inversione della dipendenza sia seguito senza alcuno sforzo cosciente. Ma, in pratica, vale la pena considerare la rappresentazione astratta delle tue lezioni concrete, ottenere maggiori informazioni sul dominio e disaccoppiare dai dettagli di implementazione che non catturano l'essenza dell'astrazione.

    
risposta data 17.04.2013 - 04:19
fonte

Leggi altre domande sui tag