بدايةً من الأساسيات، إليك تعريفًا غير رسمي لقاعدة بيانات المسجّلين:
ولكن:
ومع ذلك، قد يكون من المفيد فهم هذا الصف من أجل العمل
باستخدام Tink بكفاءة في الوقت الحالي.
ماذا يحدث عند استدعاء getPrimitive() على مقبض مجموعة مفاتيح؟ يعيد توجيه
استدعاء قاعدة بيانات المسجّلين1 التي تتضمن عناصر مع طرق ملموسة لإنشاء
والقواعد الأساسية، مثل
مفتاح AesGcm أو مثيل ChunkedMac. تتمثل مهمة السجِل في إعادة توجيه المكالمة
إلى الكائن الصحيح. لا تعمل هذه الميزة إلا إذا كان العنصر مسجَّلاً، ولهذا السبب.
من المهم دائمًا تسجيل الأساسيات التي ستستخدمها.
ولكن ماذا لو استخدمتُ مكتبة سجّلت بالفعل الأساسيات التي أحتاجها؟
هذه هي المشكلة بالضبط. وأحد أسباب إزالة قاعدة بيانات المسجّلين
لأنه في هذه الحالة، تعمل التعليمات البرمجية فقط حتى يقرر مؤلفو المكتبة
عدم تسجيل ذلك الأساسي بعد الآن. في هذه المرحلة، ينقطع الرمز،
السبب غير واضح ومربك. لذا احرص دائمًا على تسجيل
البيانات. على سبيل المثال، إذا كنت تنوي استخدام MAC في رمز Java، يجب عليك إجراء
ما يلي في مرحلة الإعداد:
MacConfig.register()
يضمن هذا الرمز تسجيل جميع العناصر اللازمة في
الأماكن الضرورية لاستخدام معيار MAC.
هناك جانب آخر لهذه المشكلة. قد يتم تسجيل بعض تبعياتك
الأشياء التي لا تحتاجها بالفعل وتفضل عدم الاعتماد عليها. هذا هو
سبب آخر لإزالة السجل العالمي.
على المثيل الفردي العام للفئة Registry، على وجه التحديد. نستخدم الاسم "Registry" لكلٍ منهما، الفئة والسينغلتون بالتبادل.↩
تاريخ التعديل الأخير: 2024-10-14 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2024-10-14 (حسب التوقيت العالمي المتفَّق عليه)"],[[["The Registry in Tink is a global entity responsible for generating new keys and primitives, but it is intended for internal use only and is slated for removal."],["The Registry forwards calls from `getPrimitive()` to objects that create keys and primitives, and these objects must be registered for the process to work."],["It's essential to explicitly register the primitives you intend to use (e.g., `MacConfig.register()`), to ensure your code works consistently and doesn't rely on the unpredictable behavior of other libraries."],["Relying on other libraries to register primitives can lead to unexpected code breakage if the library's registration practices change, making it crucial to self-manage registrations."]]],["The Registry is a global entity in Tink for generating keys and primitives, but it's slated for removal and should not be directly accessed. `getPrimitive()` calls are forwarded to the Registry, which then creates the correct object, if registered. It is crucial to register the primitives one intends to use directly, using method like `MacConfig.register()`, because relying on library registration leads to code fragility and unwanted dependencies. The class is considered for removal.\n"]]