কেউ আমাকে দয়া করে। নেট এ রেপোজিটরি প্যাটার্নটি ব্যাখ্যা করতে পারেন, একটি খুব সাধারণ উদাহরণ বা ডেমো দিয়ে ধাপে ধাপে।
আমি জানি এটি একটি খুব সাধারণ প্রশ্ন তবে এখনও আমি সন্তোষজনক উত্তর খুঁজে পাইনি।
কেউ আমাকে দয়া করে। নেট এ রেপোজিটরি প্যাটার্নটি ব্যাখ্যা করতে পারেন, একটি খুব সাধারণ উদাহরণ বা ডেমো দিয়ে ধাপে ধাপে।
আমি জানি এটি একটি খুব সাধারণ প্রশ্ন তবে এখনও আমি সন্তোষজনক উত্তর খুঁজে পাইনি।
উত্তর:
সংক্ষিপ্তসার হিসাবে, আমি সংগ্রহস্থলের প্যাটার্নের বিস্তৃত প্রভাব বর্ণনা করব। এটি আপনার সমস্ত কোডকে অবজেক্টগুলি কীভাবে অব্যাহত রয়েছে তা জেনেও অবজেক্টগুলি ব্যবহার করার অনুমতি দেয়। টেবিল থেকে বস্তুগুলিতে ম্যাপিং সহ অধ্যবসায়ের সমস্ত জ্ঞান নিরাপদে সংগ্রহস্থলটিতে রয়েছে।
খুব প্রায়ই, আপনি কোডবেজে ছড়িয়ে ছিটিয়ে থাকা এসকিউএল কোয়েরিগুলি দেখতে পাবেন এবং যখন আপনি একটি টেবিলের সাথে একটি কলাম যুক্ত করতে আসবেন তখন কোনও সারণির ব্যবহারগুলি চেষ্টা করার জন্য এবং কোডগুলি অনুসন্ধান করতে হবে। পরিবর্তনের প্রভাব সুদূরপ্রসারী।
সংগ্রহস্থল প্যাটার্নের সাহায্যে আপনার কেবল একটি বস্তু এবং একটি সংগ্রহস্থল পরিবর্তন করতে হবে। এর প্রভাব খুব কম।
সম্ভবত আপনি কেন সংগ্রহস্থল প্যাটার্নটি ব্যবহার করবেন তা ভাবতে সহায়তা করবে। এখানে কিছু কারণ রয়েছে:
আপনার ডেটা অ্যাক্সেসে পরিবর্তন আনার জন্য আপনার একক জায়গা রয়েছে
টেবিলগুলির একটি সেট (সাধারণত) এর জন্য আপনার একমাত্র জায়গা দায়বদ্ধ
পরীক্ষার জন্য ভুয়া প্রয়োগের সাথে একটি সংগ্রহস্থল প্রতিস্থাপন করা সহজ - যাতে আপনার ইউনিট পরীক্ষার জন্য আপনার কোনও ডাটাবেস উপলব্ধ করার দরকার নেই
এছাড়াও অন্যান্য সুবিধাগুলিও রয়েছে, উদাহরণস্বরূপ, আপনি যদি মাইএসকিউএল ব্যবহার করতেন এবং এসকিউএল সার্ভারে স্যুইচ করতে চান - তবে বাস্তবে আমি বাস্তবে এটি কখনই দেখিনি!
IConnection
, ICommand
ইত্যাদি অংশ চামড়া ডেটাবেসের প্রকার। সংগ্রহস্থলটি সাধারণত বেশি ডোমেন-কেন্দ্রিক হয়।
এটি একটি দুর্দান্ত উদাহরণ: সি # তে সংগ্রহস্থল প্যাটার্নের উদাহরণ
মূলত, কীভাবে ডাটাবেস থেকে / ডাটাবেসে ডেটা সংগ্রহ করা / চালিয়ে যাওয়া হয় তার বিবরণ সংগ্রহস্থলটি গোপন করে। আবরণের নিচে:
IDbContext
) বা ISession
সরাসরি নিবারনেটে ( ) সরবরাহিত ইন্টারফেসগুলি ব্যবহারের তুলনায় কোনও লাভ দেয় না । একটি সঠিকভাবে প্রয়োগ করা সংগ্রহস্থল সমস্ত স্থায়ীত্ব সম্পর্কিত নির্দিষ্ট তথ্য (যেমন বর্তমান লিঙ্ক টু এসকিএল সরবরাহকারী কীভাবে কাজ করে) দূরে সরিয়ে দেয়। অর্থাত্ কখনই প্রকাশ করা হবে না IQueryable
।
IQueryable
অধ্যবসায়ের নির্দিষ্ট তথ্য নয়। আইকিউয়ারেবলের ব্যাকআপ হার্ড কোডড অ্যারের মতোই সহজ হতে পারে বা এটি কোনও এক্সএমএল ফাইল, ওয়েব পরিষেবা, ডাটাবেস, ফ্ল্যাট ফাইল ইত্যাদির হতে পারে I প্রতিটি ক্ষেত্রে ডেটা অ্যাক্সেসকে ধীরে ধীরে নিয়ে যায়, যেখানে আইকিউয়েরেবল এক্সপোজার করা কিছু ক্ষেত্রে উদাহরণস্বরূপ কর্মক্ষমতা বর্ধন করতে দেয় যেখানে যদি অধ্যবসায়ী স্টোরটির ক্ষমতা থাকে তবে প্রযোজ্য। অতিরিক্ত হিসাবে, ডিবি কনটেক্সটকে দূরে লুকিয়ে রাখার প্রয়োজন হলে (বা কোনও ওআরএম নয়!) প্রয়োজন হলে আপনাকে অন্য কোনও ORM এ স্যুইচ করতে দেয়
IN
নির্দিষ্ট লিনকটিএসএইচএল সরবরাহকারী কীভাবে এটি করে তা না জেনে আগ্রহী / অলস লোডিং বা স্কেল ক্লজ তৈরি করার চেষ্টা করুন।