এনএইচবারনেটে রেপোজিটরি প্যাটার্নটি কেন প্রয়োজন?


13

আমি অফিসিয়ালটি আপনার প্রথম এনএইচবারনেট ভিত্তিক অ্যাপ্লিকেশনটি পড়ছি

টিউটোরিয়ালটি ভাল এবং অনুসরণ করা সহজ, আমি কেন ভান্ডার প্যাটার্ন ব্যবহার করা হচ্ছে তা নিয়ে ভাবছি।

বিভিন্ন সালে Add, Update, Removeপদ্ধতি ProductRepositoryবাস্তবায়ন, কোড প্রায় অভিন্ন - তারা সমস্ত লেনদেন ব্যবহার করছেন, এবং পার্থক্য "মাংস" এ অর্থাত কল session.Saveint- এ Addপদ্ধতি, session.Deleteমধ্যে removeপদ্ধতি। ( পৃষ্ঠাটিতে এইচটিএমএল অ্যাঙ্কর নেই, তবে আপনি প্রাসঙ্গিক কোডের জন্য পৃষ্ঠাটি অনুসন্ধান করতে পারেন public void Remove,public void Add )

এই কোডটি কেবল "ভুল অনুভব করে"।

লেখক কেন রেপোজিটরি প্যাটার্ন ব্যবহার করছেন - এটি কেবল এনএইচবারনেট ব্যবহারের প্রদর্শনের জন্য বা এটি প্রয়োজনীয় বা অন্য কোনও কারণে?

পুনশ্চ. অ্যাক্টিভেকর্ড ব্যবহার করে আমার ব্যাকগ্রাউন্ডটি রুবেল অন রেল তাই আমি এনহাইবারনেট কীভাবে কাজ করে / ব্যবহৃত হয় তা বোঝার চেষ্টা করছি।


1
আপনি যদি অ্যাক্টিভ রেকর্ড প্যাটার্নটি পছন্দ করেন তবে আপনি এনএইচবারনেট ক্যাসলপ্রজেক্ট.আর
বেন রবিনসন

3
এটি একটি সমালোচনামূলক প্রশ্ন। এটি ব্যবহার করবেন কিনা তা নিয়ে কিছু বিতর্ক চলছে। আয়েন্দে তার যুক্তিগুলি এটি সংগ্রহস্থলটিতে

উত্তর:


10

সংগ্রহস্থল প্যাটার্নের প্রয়োজন হয় না। অন্য সমস্ত প্যাটার্নটি হল একটি "আর্কিটেকচারাল" সিদ্ধান্ত যা আপনাকে আপনার ব্যবসায়ের প্রয়োজনের বিরুদ্ধে করতে হবে। সাধারণভাবে সংগ্রহস্থল প্যাটার্নটি "সত্তা পার্সেন্টেশন ইনগোয়ারেন্স" বাস্তবায়নের জন্য ব্যবহৃত হয় যার অর্থ আপনার সত্তা কীভাবে আপনার স্টোরেজ ডিভাইসে (ডাটাবেস, এক্সএমএল, টেক্সটফাইল ইত্যাদি) কীভাবে স্থির থাকে সে সম্পর্কে কিছুই জানেন না। উদাহরণস্বরূপ যদি আপনার কোনও সত্তার ঠিকানা থাকে তবে এতে অধ্যবসায় যুক্তি থাকবে না (আপনি ঠিকানা হিসাবে সংরক্ষণের মতো কোনও ঠিকানা খুঁজে পাবেন না ave সংরক্ষণ করুন p আপডেট) তবে আপনি নিজের সত্তাকে কোনও স্টোর সংরক্ষণের পদ্ধতিতে পাস করবেন যা চালিয়ে যাওয়ার দায়িত্বে রয়েছে পরিবর্তনগুলি


আমি হ্যাঁ এবং না মনে করি। এনএইচবারনেট অধিবেশন নিজেই সোমাল ধরণের জেনেরিক সংগ্রহস্থল। সুতরাং একটি অতিরিক্ত সংগ্রহস্থল যুক্ত করা সাধারণভাবে সেশন অবজেক্টে একটি মুখোমুখি যুক্ত করা ছাড়া আর কিছুই নয়।

আসলে আমার উত্তরটি "সংগ্রহস্থলের ধরণটির প্রয়োজন হয় না ..." এর মতো শুরু হয় এটি ব্যবসায়ের প্রয়োজনের তুলনায় কেবল কোনও স্থাপত্যিক সিদ্ধান্ত হতে পারে

আমি সম্পূর্ণরূপে তাতে একমত। তবে আমি বিন্দুটি অনুভব করছিলাম যে সেশনটি নিজেই একটি ভান্ডার, এটিই সব।

9

সংগ্রহস্থল প্যাটার্ন ব্যবহারের সুবিধা হ'ল আপনার ডেটা অ্যাক্সেস লেয়ারটিকে উপহাস করা, যাতে আপনি ডাল কোড না কল করে আপনার ব্যবসায়ের স্তর কোডটি পরীক্ষা করতে পারেন। অন্যান্য বড় সুবিধা রয়েছে তবে এটি আমার কাছে অত্যন্ত গুরুত্বপূর্ণ বলে মনে হচ্ছে।


2
অ্যাক্টিভেকর্ড প্যাটার্নটি +1 উপহাসের জন্য ডালকে আলাদা করা খুব কঠিন করে তোলে, সাধারণত তাদের নিজস্ব ডাটাবেসের জন্য প্রয়োজনীয় ইউনিট পরীক্ষাগুলি শেষ হয় (এই ক্ষেত্রে ইউনিট পরীক্ষাটি ইন্টিগ্রেশন টেস্টে পরিণত হয়)।
ম্যাটড্যাভি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.