Question

La raison de le faire est de résoudre le cas lorsqu'une API plus récente n'est plus compatible avec une API plus ancienne.

Pour expliquer, dites simplement qu'il existe une vieille API v1.0. Le fabricant de cette API décide qu'il est cassé et fonctionne sur une nouvelle API v1.1 qui rompt intentionnellement la compatibilité avec l'ancienne API v1.0. Maintenant, tous les programmes écrits contre l'ancienne API ne peuvent pas être recompilés tels quels avec la nouvelle API.

Disons ensuite qu'il existe une grande application écrite contre l'ancienne API et que le développeur n'a pas accès au code source. Une solution serait de réimplémenter une ancienne API V1.0 "personnalisée" en termes de nouveaux appels API V1.1. Ainsi, l'API "personnalisée" V1.0 conserve réellement la même interface / méthodes que l'API V1.0, mais à l'intérieur de son implémentation, il fait des appels vers les nouvelles méthodes API V1.1.

Ainsi, la grande application peut ensuite être compilée et liée à l'API V1.0 "personnalisée" et à la nouvelle API V1.1 sans modification du code source majeur.

Y a-t-il un terme pour cette pratique?

Il y a un exemple récent de cela qui se passe Le port de Jamie Zawinski de Xscreensaver sur l'iPhone - Il a réimplémenté l'API OpenGL 1.3 en termes d'API OpenGL ES 1.1. Dans ce cas, OpenGL 1.3 représente l'API "Old" et OpenGL ES 1.1 représente la "nouvelle" API.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top