بدايةً من الأساسيات، إليك تعريفًا غير رسمي لقاعدة بيانات المسجّلين:
ولكن:
ومع ذلك، قد يكون من المفيد فهم هذا الصف من أجل العمل باستخدام Tink بكفاءة في الوقت الحالي.
ماذا يحدث عند استدعاء getPrimitive()
على مقبض مجموعة مفاتيح؟ يعيد توجيه
استدعاء قاعدة بيانات المسجّلين1 التي تتضمن عناصر مع طرق ملموسة لإنشاء
والقواعد الأساسية، مثل
مفتاح AesGcm أو مثيل ChunkedMac. تتمثل مهمة السجِل في إعادة توجيه المكالمة
إلى الكائن الصحيح. لا تعمل هذه الميزة إلا إذا كان العنصر مسجَّلاً، ولهذا السبب.
من المهم دائمًا تسجيل الأساسيات التي ستستخدمها.
ولكن ماذا لو استخدمتُ مكتبة سجّلت بالفعل الأساسيات التي أحتاجها؟
هذه هي المشكلة بالضبط. وأحد أسباب إزالة قاعدة بيانات المسجّلين لأنه في هذه الحالة، تعمل التعليمات البرمجية فقط حتى يقرر مؤلفو المكتبة عدم تسجيل ذلك الأساسي بعد الآن. في هذه المرحلة، ينقطع الرمز، السبب غير واضح ومربك. لذا احرص دائمًا على تسجيل البيانات. على سبيل المثال، إذا كنت تنوي استخدام MAC في رمز Java، يجب عليك إجراء ما يلي في مرحلة الإعداد:
MacConfig.register()
يضمن هذا الرمز تسجيل جميع العناصر اللازمة في الأماكن الضرورية لاستخدام معيار MAC.
هناك جانب آخر لهذه المشكلة. قد يتم تسجيل بعض تبعياتك الأشياء التي لا تحتاجها بالفعل وتفضل عدم الاعتماد عليها. هذا هو سبب آخر لإزالة السجل العالمي.
-
على المثيل الفردي العام للفئة Registry، على وجه التحديد. نستخدم الاسم "Registry" لكلٍ منهما، الفئة والسينغلتون بالتبادل.↩