La versione 8 di C# introduce una funzionalità molto controversa: i default interface method. Storicamente, un'interfaccia è una semplice dichiarazione di proprietà e metodi che chiunque implementi quell'interfaccia deve implementare. Tramite questa nuova funzionalità, possiamo invece aggiungere non solo la dichiarazione, ma anche il codice di un metodo all'interno di un'interfaccia.
Per capire lo scopo di questa funzionalità, partiamo da un esempio. Supponiamo di avere un'interfaccia con due metodi: GetOrders e GetCustomers.
public interface MyInterface { List<Order> GetOrders(); List<Order> GetCustomers(); }
Supponiamo ora che questa classe venga utilizzata da diverse librerie all'interno del nostro sistema e che a un certo punto abbiamo la necessità di estendere l'interfaccia con un nuovo metodo: GetProducts. Aggiungere questo metodo all'interfaccia significa dover poi andare a modificare tutte le classi che implementano l'interfaccia per implementare il nuovo metodo. A seconda delle dimensioni e della complessità della nostra applicazione, quest'operazione può richiedere molto tempo.
In questa fase entrano in gioco i default interface method, in quanto possiamo non solo dichiarare il nuovo metodo, ma anche fornirne un'implementazione di default che tutte le classi usano se non ne forniscono una propria implementazione.
public interface MyInterface { List<Order> GetOrders(); List<Order> GetCustomers(); List<Product> GetProducts() { return new List<Product>(); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.