সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
বেসিক দিয়ে শুরু করে, এখানে রেজিস্ট্রির একটি অনানুষ্ঠানিক সংজ্ঞা দেওয়া হল:
কিন্তু:
বলা হচ্ছে, আপাতত টিঙ্কের সাথে দক্ষতার সাথে কাজ করার জন্য এই ক্লাসটি বোঝার জন্য এটি কার্যকর হতে পারে।
আপনি একটি কীসেট হ্যান্ডেলে getPrimitive() কল করলে কী হবে? এটি আপনার কলটিকে রেজিস্ট্রি 1 -এ ফরোয়ার্ড করে, যেটিতে কী এবং আদিম জিনিসগুলি তৈরি করার জন্য কংক্রিট পদ্ধতি সহ বস্তু রয়েছে, যেমন একটি AesGcm কী বা একটি ChunkedMac উদাহরণ। রেজিস্ট্রির কাজ হল সঠিক বস্তুতে কল ফরওয়ার্ড করা। এটি শুধুমাত্র তখনই কাজ করে যদি অবজেক্টটি নিবন্ধিত থাকে, যে কারণে আপনি যে আদিম ব্যবহার করতে যাচ্ছেন তা সর্বদা নিবন্ধন করা গুরুত্বপূর্ণ ।
কিন্তু যদি আমি এমন একটি লাইব্রেরি ব্যবহার করি যা ইতিমধ্যেই আমার প্রয়োজনীয় আদিম নিবন্ধন করি?
যে অবিকল সমস্যা. আর রেজিস্ট্রি অপসারণের অন্যতম কারণ। কারণ এই ক্ষেত্রে আপনার কোডটি কাজ করে যতক্ষণ না লাইব্রেরির লেখকরা সেই আদিমকে আর নিবন্ধন না করার সিদ্ধান্ত নেন। এই মুহুর্তে আপনার কোডটি ভেঙে যায় এবং কারণটি অ-স্পষ্ট এবং বিভ্রান্তিকর। তাই সর্বদা আপনি যা ব্যবহার করেন তা নিবন্ধন করুন । উদাহরণস্বরূপ, আপনি যদি আপনার জাভা কোডে MAC ব্যবহার করতে চান, তাহলে সেটআপ পর্বে আপনাকে নিম্নলিখিতগুলি করতে হবে:
MacConfig.register()
এই কোডটি নিশ্চিত করে যে সমস্ত প্রয়োজনীয় বস্তু আপনার ম্যাক আদিম ব্যবহার করার জন্য প্রয়োজনীয় স্থানে নিবন্ধিত হয়েছে।
এই সমস্যার আরও একটি দিক আছে। আপনার কিছু নির্ভরতা এমন কিছু নিবন্ধন করতে পারে যা আপনার আসলে প্রয়োজন নেই এবং নির্ভর না করতে পছন্দ করবে। এটি বিশ্বব্যাপী রেজিস্ট্রি মুছে ফেলার আরেকটি কারণ।
ক্লাস রেজিস্ট্রির গ্লোবাল সিঙ্গলটন উদাহরণে, সুনির্দিষ্ট হতে। আমরা "রেজিস্ট্রি" নামটি উভয়ের জন্য ব্যবহার করি, ক্লাস এবং সিঙ্গলটন, বিনিময়যোগ্যভাবে। ↩
[[["সহজে বোঝা যায়","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"]],["2025-07-25 UTC-তে শেষবার আপডেট করা হয়েছে।"],[[["\u003cp\u003eThe 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.\u003c/p\u003e\n"],["\u003cp\u003eThe Registry forwards calls from \u003ccode\u003egetPrimitive()\u003c/code\u003e to objects that create keys and primitives, and these objects must be registered for the process to work.\u003c/p\u003e\n"],["\u003cp\u003eIt's essential to explicitly register the primitives you intend to use (e.g., \u003ccode\u003eMacConfig.register()\u003c/code\u003e), to ensure your code works consistently and doesn't rely on the unpredictable behavior of other libraries.\u003c/p\u003e\n"],["\u003cp\u003eRelying 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.\u003c/p\u003e\n"]]],["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"],null,[]]