L'interfaccia (o una classe astratta con tutti i metodi astratti) è un'arma potente in un linguaggio tipizzato come C#, JAVA. Permette di utilizzare diversi tipi di derivati in modo uniforme. I modelli di progettazione ci incoraggiano a utilizzare l'interfaccia il più possibile.Interfaccia in un linguaggio dinamico?
Tuttavia, in un linguaggio con dattilografia dinamica, tutti gli oggetti non vengono controllati per il loro tipo in fase di compilazione. Non devono implementare un'interfaccia per essere utilizzati in un modo specifico. Devi solo assicurarti che abbiano determinati metodi (attributi) definiti. Ciò rende l'interfaccia non necessaria, o almeno non così utile come in un linguaggio statico.
Un tipico linguaggio dinamico (ad esempio rubino) ha un'interfaccia? Se lo fa, quali sono i vantaggi di averlo? In caso contrario, stiamo perdendo molti dei bellissimi modelli di progettazione che richiedono un'interfaccia?
Grazie.
Mi piace il secondo punto! :) – Shuo
Se una classe fornisce implementazioni predefinite, non è come un'interfaccia perché le interfacce differiscono dalle classi astratte in quanto non possono contenere alcuna implementazione. – sepp2k
@ sepp2k, sono d'accordo. Non è quello che chiamo l'interfaccia. – Shuo