Domanda

Il motivo per farlo è risolvere il caso in cui un'API più recente non è più retrocompatibile con un'API più vecchia.

Per spiegare, dì solo che esiste una vecchia API V1.0. Il creatore di questa API decide che è rotto e funziona su una nuova API V1.1 che rompe intenzionalmente la compatibilità con la vecchia API V1.0. Ora, qualsiasi programma scritto contro la vecchia API non può essere ricompilato così com'è con la nuova API.

Quindi diciamo che c'è una grande app scritta contro la vecchia API e lo sviluppatore non ha accesso al codice sorgente. Una soluzione sarebbe quella di reimplementare una vecchia API "personalizzata" V1.0 in termini di nuove chiamate API v1.1. Quindi l'API V1.0 "personalizzata" sta effettivamente mantenendo la stessa interfaccia/metodi dell'API V1.0 ma all'interno della sua implementazione sta effettivamente effettuando chiamate ai nuovi metodi API V1.1.

Quindi l'app di grandi dimensioni può essere quindi compilata e collegata contro l'API V1.0 "personalizzata" e la nuova API V1.1 senza alcuna importante modifica del codice sorgente.

C'è un termine per questa pratica?

C'è un recente esempio di questo che sta accadendo in La porta di XscreenSaver di Jamie Zawinski su iPhone - Ha ri-implementato l'API OpenGL 1.3 in termini di API OpenGL ES 1.1. In questo caso, OpenGL 1.3 rappresenta l'API e OpenGL ES 1.1 rappresentano l'API "Nuova".

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top