從基本概念開始,以下是 Registry 的非正式定義:
但是:
儘管如此,瞭解這個課程的原理或許會有幫助 目前都能有效率地使用 Tink。
在金鑰組控點上呼叫 getPrimitive()
時會發生什麼事?它會將您的
呼叫 Registry1,其中包含透過具體方法建立的物件
和原始檔案,例如
AesGcm 金鑰或 ChunkedMac 執行個體。註冊資料庫的工作是將通話
正確的物件這個方法只有在已註冊物件時才有效,因此
請務必一律登錄要使用的原始項目。
但如果我使用的程式庫已註冊我需要的基本功能,該怎麼辦?
這就是問題所在。而移除 Registry 是其中一個原因。 因為在這個範例中,您的程式碼僅適用於程式庫作者決定 不再登錄該基元了現在程式碼會中斷 而且不會造成混淆因此只要註冊資料 使用方式。舉例來說,如果您要在 Java 程式碼中使用 MAC,請 下列項目:
MacConfig.register()
這個程式碼能確保所有必要物件皆已在 這些必要位置可讓您使用 MAC 原始版本。
這個問題還有一個層面。某些依附元件可能會註冊 並不想依賴這是 基於其他原因而移除全域註冊資料庫。
-
更精確地說,我們使用「Registry」這個名稱無論是類別還是單例模式,都能交替使用 ↩