এ জাতীয় পরিস্থিতিতে আমি মাঝে মাঝে একাধিক স্তর সহ সফলভাবে "প্রসঙ্গ" শব্দটি চালু (পুনরায় ব্যবহার) করেছি used
এর অর্থ একটি সিঙ্গলটন, এভাবে "গ্লোবাল" অবজেক্ট স্টোর, যেখান থেকে এই ধরণের অবজেক্টগুলির জন্য অনুরোধ করা যেতে পারে। যে কোডগুলিতে তাদের প্রয়োজন হয় সেগুলিতে স্টোরের শিরোনাম অন্তর্ভুক্ত করে এবং তাদের অবজেক্টের দৃষ্টান্তগুলি পেতে (এখনকার মতো সুদের হার সরবরাহকারী) গ্লোবাল ফাংশনগুলি ব্যবহার করে।
দোকানটি হতে পারে:
- কঠোরভাবে টাইপ করা হয়েছে: আপনি সমস্ত পরিবেশন করা প্রকারের জন্য শিরোনাম অন্তর্ভুক্ত করেন এবং যাতে আপনি টাইপড অ্যাকসেসর তৈরি করতে পারেন যেমন ইন্টারেস্টেরেট গেটকন্টরআইন্টারট্রেট রেট ();
- বা জেনেরিক: অবজেক্ট গেটবজেক্ট (এনওম ওপটাইপ); এবং কেবলমাত্র নতুন ধরণের (obtypeCurrentInterestRate) দিয়ে obType এনাম প্রসারিত করুন।
সিস্টেমটি যত বড়, ততোধিক পরবর্তী সমাধানটি ব্যবহারযোগ্য, ভুল এনুম ব্যবহারের যথেষ্ট ছোট ঝুঁকির জন্য। অন্যদিকে, এমন ভাষাগুলির সাথে যা ফরোয়ার্ড প্রকারের ঘোষণাকে মঞ্জুরি দেয়, আমি মনে করি আপনি স্টোরের সমস্ত শিরোনাম না রেখে টাইপড অ্যাকসেসর ব্যবহার করতে পারেন।
আরও একটি নোট: আপনার বিভিন্ন ব্যবহারের জন্য একই অবজেক্টের ধরণের একাধিক উদাহরণ থাকতে পারে যেমন জিইউআই এবং প্রিন্টআউট, গ্লোবাল এবং সেশন স্তর লগ ইত্যাদির জন্য বিভিন্ন ভাষার মান ইত্যাদির জন্য এনাম / অ্যাকসেসরের নামটি প্রকৃত ধরণের প্রতিফলিত না হয় , তবে অনুরোধ করা উদাহরণের ভূমিকা (কারেন্টইন্টারস্ট্রেট)।
স্টোর বাস্তবায়নে, আপনাকে প্রসঙ্গের স্তরগুলি এবং প্রসঙ্গের উদাহরণ সংগ্রহগুলি পরিচালনা করতে হবে। একটি সাধারণ উদাহরণ হ'ল ওয়েব পরিষেবা, যেখানে আপনার কাছে বিশ্বব্যাপী প্রসঙ্গ রয়েছে (সেই বিষয়টির জন্য সমস্ত অনুরোধের একটি উদাহরণ - সার্ভার ফার্ম থাকা অবস্থায় সমস্যাযুক্ত) এবং প্রতিটি ওয়েব সেশনের জন্য একটি প্রসঙ্গ context আপনার প্রতিটি ব্যবহারকারীর জন্য প্রসঙ্গ থাকতে পারে, যার একাধিক, সমান্তরাল সেশন ইত্যাদি থাকতে পারে multiple একাধিক সার্ভারের সাথে আপনার এই জাতীয় জিনিসের জন্য এক ধরণের বিতরণ করা ক্যাশে ব্যবহার করা উচিত।
যখন অনুরোধটি আসবে, আপনি অনুরোধ করা অবজেক্টটি কোন প্রসঙ্গের স্তরের তা স্থির করুন, কলের জন্য সেই প্রসঙ্গটি পান। যদি বস্তুটি থাকে তবে আপনি এটি আবার প্রেরণ করুন; যদি তা না হয় তবে আপনি এটিকে প্রসঙ্গের স্তরে তৈরি এবং সঞ্চয় করে এটিকে ফিরিয়ে দিন। অবশ্যই, সৃষ্টি বিভাগটি সিঙ্ক্রোনাইজ করুন (এবং এটি বিতরণ করা ক্যাশে প্রকাশ করুন)। এই ভাষাটি প্লাগইনের মতো কনফিগারযোগ্য হতে পারে, সর্বোত্তম ভাষার সাথে তাদের শ্রেণীর নাম (জাভা, অবজেক্টিভ সি, ...) দিয়ে বস্তু দৃষ্টান্ত তৈরি করতে পারে, তবে আপনি সিতে এবং প্লাগেবল লাইব্রেরিতে ফ্যাক্টরী ফাংশনগুলি সহ এটি করতে পারেন।
পার্শ্ব নোট: কলকারীকে তার নিজস্ব প্রসঙ্গ এবং অনুরোধ করা অবজেক্টের প্রসঙ্গের স্তর সম্পর্কে খুব বেশি কিছু জানা উচিত নয়। কারণ: 1: এই পরামিতিগুলি খেলে ভুল (বা "চালাক কৌশল") করা সহজ; 2: অনুরোধের প্রসঙ্গ স্তরটি পরে পরিবর্তন হতে পারে। আমি বেশিরভাগ প্রসঙ্গে তথ্য থ্রেডের সাথে সংযুক্ত করি, তাই অনুরোধ থেকে অতিরিক্ত পরামিতি ছাড়াই অবজেক্ট স্টোরটিতে তথ্য রয়েছে।
অন্যদিকে, অনুরোধটিতে উদাহরণের জন্য ইঙ্গিত থাকতে পারে: নির্দিষ্ট তারিখের জন্য সুদের হার পাওয়ার মতো। এটি একই "গ্লোবাল" অ্যাক্সেস হওয়া উচিত, তবে তারিখের উপর নির্ভর করে একাধিক উদাহরণ (এবং হারের পরিবর্তনের মধ্যে একই তারিখে বিভিন্ন তারিখের মানকে নেতৃত্ব দেওয়া) হয়, সুতরাং অনুরোধটিতে "ইঙ্গিত" অবজেক্ট যুক্ত করার পরামর্শ দেওয়া হয়, এটি দ্বারা ব্যবহৃত উদাহরণ কারখানা এবং না দোকান; এবং কারখানার জন্য একটি কীফোরহেন্ট, স্টোর দ্বারা ব্যবহৃত। আপনি এই ফাংশনগুলি পরে যুক্ত করতে পারেন, আমি কেবল উল্লেখ করেছি।
আপনার ক্ষেত্রে এটি এক ধরণের ওভারকিল (কেবলমাত্র বিশ্বব্যাপী পর্যায়ে একটি বস্তু পরিবেশন করা হয়) তবে এখনই বেশ ছোট এবং সাধারণ অতিরিক্ত কোডের জন্য আপনি আরও জটিল প্রয়োজনীয়তার জন্য একটি প্রক্রিয়া পাবেন।
আরেকটি সুসংবাদ: আপনি যদি জাভাতে থাকেন তবে খুব বেশি চিন্তা না করেই আপনি স্প্রিং থেকে এই পরিষেবাটি পান, আমি কেবল বিশদে এটি ব্যাখ্যা করতে চাই।