Registre

<ph type="x-smartling-placeholder">

En commençant par les bases, voici une définition informelle du registre:

Mais :

Cela dit, il peut être utile de comprendre ce cours afin de avec Tink efficacement pour le moment.

Que se passe-t-il lorsque vous appelez getPrimitive() sur un handle de collection de clés ? Elle transfère votre au registre1, qui contient des objets avec des méthodes concrètes pour créer et des primitives, comme Clé AesGcm ou une instance ChunkedMac. La tâche du registre est de transférer l'appel à l'objet adéquat. Cela ne fonctionne que si l'objet est enregistré. C'est pourquoi il est important de toujours enregistrer les primitives que vous allez utiliser.

Mais que se passe-t-il si j'utilise une bibliothèque qui a déjà enregistré les primitives dont j'ai besoin ?

C'est précisément le problème. C'est l'une des raisons pour lesquelles le Registre est supprimé. Car, dans ce cas, votre code ne fonctionne que jusqu'à ce que les auteurs de la bibliothèque décident n'enregistre plus cette primitive. À ce stade, votre code est défaillant. n'est pas évidente et prête à confusion. Par conséquent, enregistrez toujours ce que vous utiliser. Par exemple, si vous souhaitez utiliser MAC dans votre code Java, vous devez lors de la phase de configuration:

MacConfig.register()

Ce code garantit que tous les objets nécessaires sont enregistrés dans les endroits nécessaires pour utiliser la primitive MAC.

Il y a un autre aspect à ce problème. Certaines de vos dépendances peuvent enregistrer des choses dont vous n’avez réellement pas besoin et vous préférez ne pas dépendre. C'est une autre raison de supprimer le registre global.


  1. à l'instance du singleton global de la classe Registry, pour plus de précision. Nous utilisons le nom "Registre" pour les deux, la classe et le singleton.