レジストリ

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

まず、レジストリの非公式の定義があります。

一方、

とはいえ、このクラスを学習するうえで役に立つかもしれませんが、 移行を進めております。

鍵セット ハンドルで getPrimitive() を呼び出すとどうなりますか?また、 Registry への呼び出し1。これには、作成する具体的なメソッドを持つオブジェクトが含まれます。 鍵とプリミティブ( AesGcm キーまたは ChunkedMac インスタンス。レジストリのタスクは呼び出しを 移動しますこれは、オブジェクトが登録されている場合にのみ機能します。そのため、 使用するプリミティブを常に登録することが重要です

しかし、必要なプリミティブがすでに登録されているライブラリを使用する場合はどうなるでしょうか。

そこが問題なのです。レジストリが削除される理由の一つです。 この場合、ライブラリ作成者がライブラリの作成を決定するまで、コードは機能しないからです。 防ぐことができます。この時点でコードが機能しなくなり、 わかりにくくなっています。ですから必ず あります。たとえば、Java コードで MAC を使用する場合は、 以下を行います。

MacConfig.register()

このコードにより、必要なすべてのオブジェクトが MAC プリミティブを使用するために必要な場所を提供します。

この問題にはもう 1 つの側面があります。依存関係の一部が登録されると 不要なものや依存したくないものが ある場合もありますこれは、 グローバル レジストリを削除する別の理由があります。


  1. Registry クラスのグローバル シングルトン インスタンスにアタッチします。「レジストリ」という名前でクラスとシングルトンの両方に対して同じ意味で使用します。