এমভিসি হ'ল ডিজাইন প্যাটার্ন বা আর্কিটেকচারাল প্যাটার্ন


109

সান এবং এমএসডিএন অনুসারে এটি একটি নকশার ধরণ।

উইকিপিডিয়া অনুসারে এটি একটি স্থাপত্য নিদর্শন

নকশার নিদর্শনগুলির সাথে তুলনা করে, স্থাপত্য নিদর্শনগুলি স্কেলের চেয়ে বড়। (উইকিপিডিয়া - স্থাপত্য নিদর্শন )

অথবা এটি একটি স্থাপত্য নিদর্শন যা একটি নকশার প্যাটার্নও রয়েছে?

কোনটি সত্য?


1
কারণ অবশ্যই একটি সত্য উত্তর থাকতে হবে ...
মাইক জি

ডেভ অ্যাট প্রোডাক্ট ম্যাডনেস অনুসারে, এমভিসি হ'ল একটি নকশার প্যাটার্ন এবং রোবটেলসও তাই। : পি
অ্যান্ডিগেস্টহলিউড

উত্তর:


56

এমভিসি আরও একটি স্থাপত্য নিদর্শন, তবে সম্পূর্ণ প্রয়োগের জন্য নয়। এমভিসি বেশিরভাগই কোনও অ্যাপ্লিকেশনটির ইউআই / ইন্টারঅ্যাকশন স্তর সম্পর্কিত। আপনার এখনও ব্যবসায়ের লজিক স্তর প্রয়োজন হতে পারে, সম্ভবত কিছু পরিষেবা স্তর এবং ডেটা অ্যাক্সেস স্তর। এটি হ'ল আপনি যদি এন-টায়ার পদ্ধতির মধ্যে থাকেন।


16
হ্যাঁ, আমি বলব এমভিসি আপনার উপস্থাপনা স্তরগুলির জন্য একটি স্থাপত্য বিন্যাস architect
মুরকি

8
"এমভিসি বেশিরভাগই কোনও অ্যাপ্লিকেশনের ইউআই / ইন্টারঅ্যাকশন স্তর সম্পর্কিত" এর সাথে আমি দৃ strongly়ভাবে একমত নই। "এম" / MVC মডেল হয় ব্যবসা স্তর, যা আপনি সম্ভবত একাধিক স্তরে বিভক্ত করতে চান না।
mewm

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

40

কেন তাদের একটি সত্য হতে হবে?

উভয়ই সত্য হতে পারে, দৃষ্টিভঙ্গির উপর নির্ভর করে।

এমভিসি একটি আর্কিটেকচার প্যাটার্ন হতে পারে, যদি এটি অ্যাপ্লিকেশন আর্কিটেকচারের ভিত্তি তৈরি করে।

এটি কেবল একটি নকশার প্যাটার্ন হিসাবে দেখা যায়, কোনও প্রয়োগের জন্য প্রযোজ্য একটি বিমূর্ত ধারণা।


27

নকশা নিদর্শনগুলি কীভাবে কার্যকরভাবে কোড লিখতে হয় তা বলে ( কোড মেট্রিক্স বিবেচনা করে )।

কয়েকটি সুবিধা:

  1. সহজেই রক্ষণাবেক্ষণযোগ্য
  2. উচ্চ পুনরায় ব্যবহারের যোগ্যতা
  3. বিমূর্ততার কারণে পঠনযোগ্য

স্থাপত্য নিদর্শনগুলি কীভাবে সম্পদের কার্যকরভাবে ব্যবহার করতে হয় তা বলে।

  1. প্রোগ্রামার এবং গ্রাফিক ডিজাইনারের মতো সমান্তরাল কার্য সম্পাদন সমান্তরাল কাজ করতে পারে।
  2. একটি সফ্টওয়্যার তৈরি করতে একাধিক প্রযুক্তি ব্যবহার করা যেতে পারে।

এমভিসিতে, ক)। জাভাস্ক্রিপ্ট টেম্পলেট ব্যবহার করে ভিউ তৈরি করা যেতে পারে এবং এইচটিএমএলও ব্যবহার করা যেতে পারে খ)। কন্ট্রোলার .NET ফ্রেমওয়ার্ক এবং গ) লেখা যেতে পারে মডেলগুলি জাভাতে লেখা যেতে পারে - একটি জাভা পরিষেবা ব্যবহার করা যেতে পারে যা কেবল জসন ডেটা দেয়।

নকশা প্যাটার্ন যদিও, একটি প্যাটার্ন করতে পারবে না বাস্তবায়িত হবে, যা কোড পিএইচপি জাভা AdminUser বর্গ, C # কাস্টমার বর্গ, পার্টনার্স শ্রেণী এবং রুবি মধ্যে :) একটি কারখানা প্যাটার্ন মত একাধিক প্রযুক্তি লেখা যেতে পারে; হুমমম..সু সহজ? :)


6

আমি জানি যে এটির কিছুক্ষণ আগে জবাব দেওয়া হয়েছিল, তবে এমভিসি বিখ্যাত হয়েছে এমন বইটি এখনও কেউ উল্লেখ করেনি: প্যাটার্ন-ওরিয়েন্টেড সফটওয়্যার আর্কিটেকচার (পোসা), বুশম্যান দ্বারা এবং ১৯ al৪ সালে প্রকাশিত। যদিও ডিজাইন প্যাটার্নসের বইয়ের মতো ব্যাপকভাবে পড়া হয়নি , গামা দ্বারা, এট আল, পোসা নিদর্শন সম্প্রদায় দ্বারা ব্যবহৃত অন্যতম ভিত্তিক বই।

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


3

আমি মনে করি উভয়ই সত্য। আপনি যদি এমভিসি-র কোনও নির্দিষ্ট ইনস্ট্যান্টেশনটি রুবেল অন রেলস-এর মতো কাঠামোয় দেখে থাকেন তবে সেই ইনস্ট্যান্টেশনটি একটি ডিজাইনের ধরণ বেশি of আপনি যদি এমভিসিকে একটি সাধারণ ধারণা হিসাবে দেখেন তবে এটি আরও একটি স্থাপত্য নিদর্শন।


3

ক্লাসগুলির মডেল / ভিউ / কন্ট্রোলার (এমভিসি) ত্রিয়ার ভিতরে নকশার ধরণগুলির মধ্যে অন্তর্ভুক্ত রয়েছে এবং এটি সীমাবদ্ধ নয়:

  • পর্যবেক্ষক , অবজেক্টগুলি ডিকোপলিং যাতে একটি (মডেল) এ পরিবর্তিত অন্যের (দৃষ্টিভঙ্গি) অন্যের বিশদ (দর্শন) এর বিশদ জানার জন্য পরিবর্তিত বস্তুর (মডেল) প্রয়োজনীয়তা ছাড়াই যে কোনও ব্যক্তির (দৃষ্টিভঙ্গি )গুলিকে প্রভাবিত করতে পারে।

  • কম্পোজিট , যা আমাদের একটি গ্রুপ বস্তু (একটি যৌগিক দৃশ্য) আচরণ ঠিক মত আমরা তার কোন একক বস্তু (দৃশ্য উপাদান) এক চিকিত্সা করতে দেয়।

  • কৌশল , যেখানে একটি দৃশ্য একটি নির্দিষ্ট প্রতিক্রিয়া কৌশল বাস্তবায়নের জন্য একটি নিয়ন্ত্রণকারী সাবক্লাসের উদাহরণ ব্যবহার করে; একটি ভিন্ন কৌশল বাস্তবায়নের জন্য, কেবলমাত্র ভিন্ন ধরণের নিয়ামক দিয়ে উদাহরণটি প্রতিস্থাপন করুন।

  • কারখানার পদ্ধতি , দেখার জন্য ডিফল্ট নিয়ামক শ্রেণি নির্দিষ্ট করে।

  • সাজসজ্জার , একটি দৃশ্যে স্ক্রোলিং যুক্ত।


উল্লেখ

  • পৃষ্ঠাগুলি ৪ থেকে 1.2 (বিভাগে সামুদ্রিক MVC বিভাগের নকশাগুলি)
  • পৃষ্ঠা 293 থেকে 304 (পর্যবেক্ষক নকশার ধরণ)
  • পৃষ্ঠা 163 থেকে 174 (সমন্বিত নকশার ধরণ)
  • পৃষ্ঠা 315 থেকে 324 (কৌশল ডিজাইনের ধরণ)
  • পৃষ্ঠাগুলি 107 থেকে 116 (কারখানার পদ্ধতি ডিজাইনের ধরণ)
  • পৃষ্ঠা 175 থেকে 185 (সজ্জা নকশার প্যাটার্ন)

এরিক গামা, রিচার্ড হেলম, রাল্ফ জনসন এবং জন ভ্লিসাইডস। নকশার ধরণগুলি: পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টড সফ্টওয়্যার এর উপাদানসমূহ । অ্যাডিসন-ওয়েসলি, পড়া, এমএ, 1994।


1
ধন্যবাদ, অন্য সমস্ত উত্তর ভুল। এটি একেবারে "দৃষ্টিভঙ্গির ভিত্তিতে" নয় এবং কয়েক ডজন বা শত ভোট পেয়ে কিছু ভুল হওয়া যায় না। এমভিসি নিজেই কোনও ডিজাইনের প্যাটার্ন নয়, আপনি উল্লেখ করেছেন এমন বহুগুলি ডিজাইনের প্যাটার্ন ব্যবহার করে আপনার কোডটি 3 স্তরে আর্কিটেকচার করার একটি উপায়। দৃশ্যের পিছনে এমভিসি প্রয়োগ করে এমন সমস্ত কাঠামো পর্যবেক্ষণযোগ্য, কৌশল এবং সংমিশ্রিত প্যাটার্নের ধারণাটি ব্যবহার করে। এমভিসি বোঝার সর্বোত্তম উপায় হ'ল আপনার নিজস্ব বাস্তবায়ন তৈরি করা এবং তারপরে আপনি পেছনের নকশার ধরণগুলি বুঝতে পারবেন।
amdev

2

এমভিসি সর্বদা সফ্টওয়্যার আর্কিটেকচার বইতে / হিসাবে উপস্থাপনা স্তর হিসাবে উল্লেখ ও পরিচয় করিয়ে দেয়।

এই বইগুলি পড়ুন:

  1. মাইক্রোসফ্ট আর্কিটেকটিং। এন্টারপ্রাইজের জন্য নেট সমাধান (মাইক্রোসফ্ট প্রেস)

  2. পেশাদার এএসপি.নেট ডিজাইনের ধরণগুলি (রক্স)

  3. মাইক্রোসফট.এনইটি (মাইক্রোসফ্ট প্রেস) ব্যবহার করে এন্টারপিস সলিউশন প্যাটার্নস

  4. এন্টারপ্রাইজ অ্যাপ্লিকেশন আর্কিটেকচারের প্যাটার্নস (অ্যাডিসন ওয়েসলি)

  5. এন্টারপ্রাইজ আর্কিটেকচারের প্রাক্টিক্যাল গাইড (প্রেন্টিস হল)


6
2 টি উত্তর কেন? আপনি এই উত্তরটি আপনার প্রথম একটিতে অতিরিক্ত নোট হিসাবে যুক্ত করতে পারেন
ফ্রিঙ্গাটো

2

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

জোশ স্মিথ


1

এবং মার্টিন ফওলারের মতে তারা হ'ল জিইউআই আর্কিটেকচার: মার্টিন ফওলার-জিইআইআই আর্কিটেকচার

এটি অ্যাপ্লিকেশনের আকারের উপর নির্ভর করে, কারণ এটি কেবল জিইউআই সম্পর্কিত ক্লাসগুলিকেই প্রভাবিত করে, একটি ছোট্ট (বেশিরভাগ জিইউআই) এ এটি একটি স্থাপত্য নিদর্শন হিসাবে বিবেচনা করা যেতে পারে তবে একটি বিশাল মধ্যে এটি কেবল একটি ডিজাইনের প্যাটার্ন হবে যা আপনি জিইউআইতে প্রয়োগ করেন that কোড (অ্যাপ্লিকেশন কোডের 10% হতে পারে)।


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