Rejestr

Zacznijmy od podstaw, oto nieformalna definicja rejestru:

Ale:

Warto jednak poznać te zajęcia, aby na bieżąco pracować z Tink.

Co się stanie, gdy wywołasz funkcję getPrimitive() za pomocą uchwytu zestawu kluczy? Przekierowuje ono Twoje wywołanie do rejestru1, który zawiera obiekty z określonymi metodami tworzenia kluczy i elementy podstawowe, takie jak klucz AesGcm lub instancja ChunkedMac. Zadaniem rejestru jest przekierowanie wywołania do odpowiedniego obiektu. Działa to tylko wtedy, gdy obiekt jest zarejestrowany, dlatego ważne jest, aby zawsze rejestrować podstawowe, których będziesz używać.

Co zrobić, jeśli korzystam z biblioteki, w której mam już zarejestrowane podstawowe elementy, których potrzebuję?

Na tym polega problem. Jednym z powodów usunięcia rejestru. W takim przypadku kod działa tylko do czasu, aż autorzy biblioteki nie zdecydują się już na jego rejestrowanie. Na tym etapie kod ulega uszkodzeniu, a przyczyna jest nieoczywista i niezrozumiała. Dlatego zawsze rejestruj to, czego używasz. Jeśli np. chcesz używać adresu MAC w kodzie Javy, na etapie konfiguracji wykonaj te czynności:

MacConfig.register()

Ten kod zapewnia, że wszystkie niezbędne obiekty są zarejestrowane w miejscach wymaganych do użycia podstawowej wersji MAC.

Problem jest jeszcze z jednej strony. Niektóre zależności mogą rejestrować rzeczy, których nie potrzebujesz i na których nie chcesz polegać. Jest to kolejna przyczyna usunięcia rejestru globalnego.


  1. do globalnej instancji typu singleton rejestru klas. Nazwa „Registry” jest używana zamiennie zarówno do klasy, jak i do singletonu.