এমভিসি: মডেল এবং একটি পরিষেবার মধ্যে পার্থক্য কী?


15

কিছু ফ্রেমওয়ার্কগুলিতে কেন যুক্তির স্তরটিকে "মডেল" বলা হয় তবে কিছুতে এটি "পরিষেবা" বলা হয়। সম্মেলন নামকরণ করে সেগুলি কি একে অপরের থেকে আলাদা বা ঠিক আলাদা?


আপডেট 1

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

আমি যেটা লক্ষ্য করেছি তা হল যে পরিষেবাটি সিঙ্গলটনের মতোই যা আবার এবং পুনরায় ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ: একটি আরএসটি ক্লায়েন্ট) যেখানে একটি মডেল এমভিসি প্যাটার্নে নিয়ামক থেকে আসা ডেটা ম্যানিপুলেশনগুলির সাথে সম্পর্কিত।


আপনার গবেষণা ভাগ করে নেওয়া প্রত্যেককে সহায়তা করে। আপনি কী চেষ্টা করেছেন এবং কেন এটি আপনার প্রয়োজনীয়তা মেটেনি তা আমাদের বলুন। এটি প্রমাণ করে যে আপনি নিজেকে সাহায্য করার চেষ্টা করার জন্য সময় নিয়েছেন, এটি আমাদের সুস্পষ্ট উত্তরের পুনরাবৃত্তি থেকে বাঁচায় এবং সর্বোপরি এটি আপনাকে আরও নির্দিষ্ট এবং প্রাসঙ্গিক উত্তর পেতে সহায়তা করে। আরো দেখুন কিভাবে জিজ্ঞাসা করতে
মশা

শেক্সপিয়রকে প্যারাফ্রেস করতে: একটি নামে কী, অন্য কোনও নামে গোলাপ এখনও গোলাপ। আপনার অ্যাপ্লিকেশন মডেলটি পরিষেবা হিসাবে ভাল প্রয়োগ করা যেতে পারে।

উত্তর:


22

মডেল: অবজেক্টের অন্তর্গত ক্ষেত্রগুলি, অবজেক্ট থেকে ডেটা পেতে / সেট করতে সহায়তা করে এমন পদ্ধতিগুলি (একটি পুরো নাম অ্যাক্সেসর যা প্রথম + শেষ নাম ফেরায়)

পরিষেবা: এক বা একাধিক মডেলের সাথে ক্রিয়াকলাপ সম্পাদনের পদ্ধতি, 'কাজের ইউনিট', লেনদেন ইত্যাদি দেখুন ...


কর্মচারী :: তৈরির জন্য কেবলমাত্র ডেটার একটি সেট নেওয়া উচিত, প্রয়োজনে মডেল বৈধকরণ সম্পাদন করা উচিত এবং কোনও কর্মচারী বস্তু ফিরিয়ে দেওয়া উচিত।

কর্মচারী পরিষেবা :: hireEmployee কর্মী তৈরি করতে পারে, তাদের একটি স্বাগত ইমেল প্রেরণ করতে পারে, একটি মেলবক্স তৈরি করতে পারে, তাদের একটি স্যান্ডউইচ ইত্যাদি তৈরি করতে পারে ... এটি ডেটার সেট বা ফলাফলের কোড ইত্যাদি ফিরিয়ে দিতে পারে ...


এটি বৈধকরণকেও প্রভাবিত করতে পারে:

মডেল বৈধকরণ: কর্মচারীর অবশ্যই একটি আইডি, প্রথম এবং শেষ নাম এবং জন্মদিন থাকতে হবে

পরিষেবা বৈধকরণ: বারটেন্ডার পদের জন্য কর্মচারীদের 21 বা তার বেশি হতে হবে এবং একজন পরিচালক দ্বারা অনুমোদিত হতে হবে।


সত্যিকারের শব্দের ব্যবসায়ের যুক্তিটি কীভাবে জটিল হতে পারে তা চিত্রিত করার জন্য খুব দৃ concrete় উদাহরণের জন্য ধন্যবাদ এবং এই কারণেই পরিষেবার একটি অতিরিক্ত স্তর মডেল স্তরটি বাদ দিয়ে সহায়তা করতে পারে।
wlnirvana

3

আমার অভিজ্ঞতা অনুসারে, এমভিসি ডিজাইন প্যাটার্নের মধ্যে থাকা মডেল স্তরটি ডেটা ম্যানিপুলেশনের সাথে জড়িত প্রতিটি সফ্টওয়্যার উপাদানকে বোঝায় (POJOs, DAO, এসকিউএল, জেডিবিসি, এবং আরও কিছু উপায়)।

যেখানে পরিষেবা স্তরটি আসলে এমভিসির একটি সংযোজন:

আমরা জানি যে মডেল স্তর উপাদানগুলি কন্ট্রোলার স্তরের অভ্যন্তরে প্রবেশ করা হয়। পরেরটি তৈরি হয়ে গেলে, আপনি বুঝতে পারবেন যে এটি সংক্ষিপ্ত দেখাচ্ছে না (ময়লা কোডের সাথে অগোছালো); কন্ট্রোলার অতিরিক্ত বিবরণ বহন করতে পারে না (যেমন কোনও ডিএও পদ্ধতিতে সেগুলি গ্রহন করার আগে কল করার আগে অনুরোধের প্যারামিটারগুলি বিন্যাস করতে পারে ...)। অতএব, আপনি এই অতিরিক্ত স্তরটি নামক পরিষেবা স্তর অন্তর্ভুক্ত করতে পারেন ।

শেষ পর্যন্ত, আপনি আপনার নোংরা কোডটিকে অর্থবহ নাম, প্যারামিটার এবং আরও কিছু দিয়ে স্থির পদ্ধতির অভ্যন্তরে অন্তর্ভুক্ত করতে পারেন, যার ফলে সিন্থেটিক নিয়ামক স্তর হবে।

এই লিঙ্কটি একবার দেখুন:

/programming/2762978/the-purpose-of-a-service-layer-and-asp-net-mvc-2


1
এইভাবে আমি পরিষেবা স্তরটিও দেখতে পাই। তবে তারপরেও প্রায়শই না আমি দেখতে পাচ্ছি এটি ব্যবসায়ের মডেলটিতে বহিরাগত এপিআই সরবরাহ করতে ব্যবহৃত হচ্ছে। উভয় পরিস্থিতিতে আমি বৈধ দেখতে। এখানে বিষয়টি কেবল নামকরণের সংঘর্ষের মধ্যে।
বার্নব্লার্ক

2

কাঠামোগতভাবে এই বেস ক্লাসগুলি একই, তবে এগুলি এমভিসিএস বাস্তবায়নের পরিষেবা এবং মডেল স্তরগুলির বিভিন্ন উদ্বেগকে শ্রেণিবদ্ধ করতে ব্যবহৃত হয়

Service:- A concrete service class defines the API of an external Service.

Model :- Defines the API of the applications data model.

সুতরাং, বেস ক্লাসগুলি একই রকম হলেও, এই বেস ক্লাসগুলিকে প্রসারিত করে তৈরি কংক্রিট ক্লাস দুটি সম্পূর্ণ ভিন্ন উদ্দেশ্যে পরিবেশন করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.