Estensione di interfacce in AL
Un'interfaccia in AL è un contratto sintattico che è possibile implementare con un metodo non astratto. L'interfaccia è usata per definire quali funzionalità devono essere disponibili per un oggetto, consentendo allo stesso tempo che le implementazioni effettive differiscano, a condizione che rispettino l'interfaccia definita. Per altre informazioni, consultare Interfacce in AL.
A partire da Business Central 2024 ciclo di rilascio 2, le interfacce estendibili in AL sono supportate. L'estensione delle interfacce permette di creare un'estensione flessibile e adattabile. È possibile aggiungere nuove funzionalità senza alterare il sistema core, il che permette di risparmiare tempo e risorse, oltre a ridurre il rischio di introdurre degli errori nella base di codice esistente.
Quando si dichiara un'interfaccia, è possibile estendere una o più interfacce esistenti. La nuova interfaccia eredita tutti i metodi dalle interfacce che estende. Pertanto, quando si implementa un'interfaccia che estende altre interfacce, la classe o l'oggetto di implementazione deve fornire implementazioni per tutti i metodi definiti nelle interfacce estese, oltre a tutti i metodi definiti nella nuova interfaccia stessa. Ciò garantisce che l'implementatore aderisca al contratto specificato da tutte le interfacce coinvolte.
Sintassi
Nell'esempio, è possibile usare TheImplementor come IFoo, IBar e IFooBar. La sintassi per l'estensione di un'interfaccia è la seguente:
interface IFoo
{
procedure Foo();
}
interface IBar
{
procedure Bar();
}
interface IFooBar extends IFoo, IBar
{
procedure FooBar();
}
codeunit 10 TheImplementor implements IFooBar
{
// Must implement IFoo, IBar, IFooBar
}
Interfacce e operatori estendibili
Le interfacce estendibili in AL supportano anche l'uso degli operatori di test e cast "is" e "as". L'operatore "is" permette di verificare se un oggetto implementa un'interfaccia specifica, mentre l'operatore "as" permette di eseguire il cast di un oggetto a un tipo di interfaccia specifico. Questa funzionalità migliora la flessibilità e l'affidabilità del codice poiché garantisce il controllo dinamico dei tipi e il casting. Per altre informazioni, consultare Test del tipo e operatori di cast per le interfacce.