با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با شروع با اصول اولیه، در اینجا یک تعریف غیررسمی از Registry آورده شده است:
اما:
همانطور که گفته شد، ممکن است درک این کلاس برای کار با Tink فعلا مفید باشد.
چه اتفاقی میافتد وقتی getPrimitive() روی دسته کلید فراخوانی میکنید؟ تماس شما را به Registry 1 هدایت می کند که حاوی اشیایی با روش های مشخص برای ایجاد کلیدها و موارد اولیه است، مانند یک کلید AesGcm یا یک نمونه ChunkedMac. وظیفه رجیستری ارسال تماس به شی درست است. این فقط در صورتی کار می کند که شی ثبت شده باشد، به همین دلیل مهم است که همیشه اولیه هایی را که می خواهید استفاده کنید ثبت کنید .
اما اگر از کتابخانه ای استفاده کنم که قبلاً موارد اولیه مورد نیاز من را ثبت کرده است، چه؟
دقیقا مشکل همینه و یکی از دلایل حذف رجیستری. زیرا در این مورد کد شما فقط تا زمانی کار می کند که نویسندگان کتابخانه تصمیم بگیرند که دیگر آن اولیه را ثبت نکنند. در این مرحله کد شما خراب می شود و دلیل آن غیر واضح و گیج کننده است. بنابراین همیشه آنچه را که استفاده می کنید ثبت کنید . به عنوان مثال، اگر قصد دارید از MAC در کد جاوا خود استفاده کنید، باید در مرحله راه اندازی موارد زیر را انجام دهید:
MacConfig.register()
این کد تضمین می کند که تمام اشیاء لازم در مکان های لازم برای استفاده از MAC primitive ثبت شده است.
این مشکل یک طرف دیگر هم دارد. برخی از وابستگیهای شما ممکن است چیزهایی را ثبت کنند که واقعاً به آنها نیاز ندارید و ترجیح میدهید به آنها وابسته نباشید. این دلیل دیگری برای حذف رجیستری جهانی است.
به طور دقیق به نمونه جهانی Registry کلاس. ما از نام "Registry" برای هر دو، کلاس و singleton، به جای یکدیگر استفاده می کنیم. ↩
تاریخ آخرین بهروزرسانی 2024-11-13 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2024-11-13 بهوقت ساعت هماهنگ جهانی."],[[["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"]]