রেজিস্ট্রি

বেসিক দিয়ে শুরু করে, এখানে রেজিস্ট্রির একটি অনানুষ্ঠানিক সংজ্ঞা দেওয়া হল:

কিন্তু:

বলা হচ্ছে, আপাতত টিঙ্কের সাথে দক্ষতার সাথে কাজ করার জন্য এই ক্লাসটি বোঝার জন্য এটি কার্যকর হতে পারে।

আপনি একটি কীসেট হ্যান্ডেলে getPrimitive() কল করলে কী হবে? এটি আপনার কলটিকে রেজিস্ট্রি 1 -এ ফরোয়ার্ড করে, যেটিতে কী এবং আদিম জিনিসগুলি তৈরি করার জন্য কংক্রিট পদ্ধতি সহ বস্তু রয়েছে, যেমন একটি AesGcm কী বা একটি ChunkedMac উদাহরণ। রেজিস্ট্রির কাজ হল সঠিক বস্তুতে কল ফরওয়ার্ড করা। এটি শুধুমাত্র তখনই কাজ করে যদি অবজেক্টটি নিবন্ধিত থাকে, যে কারণে আপনি যে আদিম ব্যবহার করতে যাচ্ছেন তা সর্বদা নিবন্ধন করা গুরুত্বপূর্ণ

কিন্তু যদি আমি এমন একটি লাইব্রেরি ব্যবহার করি যা ইতিমধ্যেই আমার প্রয়োজনীয় আদিম নিবন্ধন করি?

যে অবিকল সমস্যা. আর রেজিস্ট্রি অপসারণের অন্যতম কারণ। কারণ এই ক্ষেত্রে আপনার কোডটি কাজ করে যতক্ষণ না লাইব্রেরির লেখকরা সেই আদিমকে আর নিবন্ধন না করার সিদ্ধান্ত নেন। এই মুহুর্তে আপনার কোডটি ভেঙে যায় এবং কারণটি অ-স্পষ্ট এবং বিভ্রান্তিকর। তাই সর্বদা আপনি যা ব্যবহার করেন তা নিবন্ধন করুন । উদাহরণস্বরূপ, আপনি যদি আপনার জাভা কোডে MAC ব্যবহার করতে চান, তাহলে সেটআপ পর্বে আপনাকে নিম্নলিখিতগুলি করতে হবে:

MacConfig.register()

এই কোডটি নিশ্চিত করে যে সমস্ত প্রয়োজনীয় বস্তু আপনার ম্যাক আদিম ব্যবহার করার জন্য প্রয়োজনীয় স্থানে নিবন্ধিত হয়েছে।

এই সমস্যার আরও একটি দিক আছে। আপনার কিছু নির্ভরতা এমন কিছু নিবন্ধন করতে পারে যা আপনার আসলে প্রয়োজন নেই এবং নির্ভর না করতে পছন্দ করবে। এটি বিশ্বব্যাপী রেজিস্ট্রি মুছে ফেলার আরেকটি কারণ।


  1. ক্লাস রেজিস্ট্রির গ্লোবাল সিঙ্গলটন উদাহরণে, সুনির্দিষ্ট হতে। আমরা "রেজিস্ট্রি" নামটি উভয়ের জন্য ব্যবহার করি, ক্লাস এবং সিঙ্গলটন, বিনিময়যোগ্যভাবে।