MVVM اور MVP کے درمیان فرق

Anonim

سافٹ ویئر کی ترقی کا مقصد صارف اور کاروباری اداروں کے لئے ضروریات اور مسائل کو حل کرنے کے حل کی تعمیر کرنا ہے. اس کو حاصل کرنے کے لئے، مختلف ٹیکنالوجیز اور فن تعمیراتی نمونوں جیسے ماڈل-دیکھیں-دیکھیں موڈیل (MVVM) اور ماڈل-دیکھیں-پریزنٹیشن (MVP) کا استعمال کیا جاتا ہے.

جو کچھ تیار کیا گیا ہے اس کے ساتھ، پہلا قدم منصوبہ بندی اور ڈیزائن مرحلہ ہے. سافٹ ویئر ڈیزائن پروسیسنگ پسندیدہ ٹیکنالوجی کے آلے سیٹ پر مبنی ایک تفصیلات ہوسکتی ہے، اور یہ تمام سرگرمیوں کو مواصلات سے کرنے کی منصوبہ بندی کرنے کے لئے - اپ ڈیٹ کرنے اور اپ ڈیٹس میں شامل کرسکتا ہے.

یہ ڈیزائن سطح کے پیٹرن کا استعمال کرتے ہوئے کم سطح اور اعلی درجے کی آرکیٹیکچرل ڈیزائن پر مشتمل ہے، منتخب فن تعمیراتی نمونوں پر مبنی ہے.

سافٹ ویئر کی درخواست کی ساخت

سافٹ ویئر کی فن تعمیر ایک ایسی درخواست کی ساخت کی وضاحت کرتا ہے جو تکنیکی، آپریشنل، اور صارف کی ضروریات کو پورا کرتا ہے اور اس کا حوالہ دیتا ہے کہ کوڈ کس طرح منظم اور منظم ہے.

ایک سافٹ ویئر کی درخواست کے فن تعمیر پر فیصلہ کرنا اہم ہے کیونکہ یہ ایک ایسی آسان اور قابل اطلاق حصہ نہیں ہے جو پہلے سے ہی ترقی یافتہ ہے. لہذا کسی بھی پروگرامنگ شروع ہونے سے پہلے آرکیٹیکچرل پیٹرن کا فیصلہ کیا جانا چاہئے.

آرکیٹیکچرل پیٹرن کچھ پیٹرن ڈیزائن کرنے کے لئے مختلف ہیں کیونکہ ان کی گنجائش زیادہ تکنیکی مسائل سے متعلق ہارڈ ویئر کی کارکردگی اور حدود، اور اعلی دستیابی کو حل کرنے سے زیادہ وسیع ہے. مختلف فن تعمیراتی نمونوں کی مثال MVC، MVVM، اور MVP ہیں.

دوسری طرف، ڈیزائن کے نمونوں کو بہترین طریقوں سے روایتی طور پر استعمال کیا جاتا ہے جو دوبارہ قابل اعتراض اعتراض پر مبنی ترقی کی سہولیات کو فروغ دینے اور ایپلیکیشن کے آرکیٹیکچر کے مقابلے میں برقرار رکھنے اور تبدیل کرنے میں آسان ہے.

نظریاتی نمونہ

ماڈل دیکھیں کنٹرولر (ایمویسی) ویب ایپلی کیشنز کے لئے تیار پہلے آرکیٹیکچرل نمونوں میں سے ایک تھا، جس میں خاص طور پر جاوا کمیونٹی کے ساتھ دیر سے انیتاوں کے درمیان مقبولیت حاصل ہوئی.

پجرن اور ریلوں کے لئے جینگو جیسے نئے فریم ورک، تیزی سے تعیناتی پر مضبوط توجہ رکھتے ہیں، لہذا MVC مارکیٹ حصص لے کر آرکیٹیکچرل پیٹرن میں بڑے توجہ کے طور پر ہے.

روایتی طور پر، صارف انٹرفیس کی ترقی میں پیچیدہ منطق کو سنبھالنے کے لئے بہت سے کوڈ شامل تھے لہذا فن تعمیراتی نمونوں کو صارف انٹرفیس (یوآئ) کی سطح پر کوڈ کو کم کرنے کے لئے ڈیزائن کیا گیا تھا، اور یہ زیادہ 'صاف' اور انتظام کرنے کے لئے ڈیزائن کیا گیا تھا.

لہذا، MVC پیٹرن کے ساتھ، ایک ویب ایپلیکیشن

  • ماڈل (ڈیٹا)
  • دیکھیں (اعداد و شمار کو دیکھنے اور انوپیٹ کرنے کے لئے انٹرفیس)
  • کنٹرولر (آپریشن اور اعداد و شمار پر کارکردگی کا مظاہرہ کیا)

ماڈل ڈیٹا اور کاروباری منطق کو ہینڈل کرتا ہے اور نہیں ماڈل اور کنٹرولر < یا دیکھیں .

ملاحظہ کریں صارف کو اس کی حمایت کی شکل اور ضروری ترتیب میں پیش کرتا ہے، اور جب کنٹرولر صارف کی درخواستوں کو وصول کرتا ہے (ڈیٹا حاصل کرنے کے لۓ)، یہ متعلقہ وسائل کی ضرورت ہوتی ہے درخواست مکمل کرنے کے لئے. آئیے یہ پیٹرن آن لائن بک سٹور کی تعمیر کے لئے درخواست دیں.

صارفین تلاش، ملاحظہ کریں، رجسٹر کریں اور کتابوں کو خریدیں اور ساتھ ہی اپنے پروفائلز اور کتاب کی فہرستوں کو منظم کرسکیں. جب صارف ایس سی آئی-ایف آئی کی قسم پر کلک کرتا ہے تو، تمام متعلقہ کتابوں کو دستیاب کے طور پر پیش کرنا چاہئے.

کنٹرولر کتابوں کا انتظام کرنے والے اعمال کو سنبھالیں (فہرست، شامل، دیکھیں، وغیرہ). ایک اہم کنٹرولر کے ساتھ 'ٹریفک کی ہدایت' کے ساتھ متعدد کنٹرولر ہوسکتا ہے. اس مثال کے طور پر،

کنٹرولر کا نام ہے controller_books. پی ایچ پی اور ماڈل (مثال کے طور پر ماڈل_ کتابیں. پی ایچ پی) کتابوں سے متعلق ڈیٹا اور منطق کو ہینڈل کرتی ہے. آخر میں، مختلف

مناظر کی ضرورت ہو گی، جیسے آن لائن کی ٹوکری میں کتابیں شامل کرتے ہیں یا کتابوں اور جائزے کے ساتھ کتاب کی تفصیل کو دیکھتے وقت.

کنٹرولر کتابیں. پی ایچ پی اہم کنٹرولر (ای. انڈیکس. پی ایچ پی ) سے عمل (صارف کی درخواست) وصول کرتا ہے. کنٹرولر کتابیں. پی ایچ پی درخواست کا تجزیہ کرتا ہے اور model_books کو کال کرتی ہے. پی ایچ پی (اعداد و شمار) SCI-FI کتابوں کی فہرست واپس لینے کے لئے.

ماڈل کی ذمہ داری اس معلومات کو فراہم کرنے کے لئے ہے، جو کسی بھی منطق کا استعمال کرتے ہوئے استعمال کیا گیا ہے (تلاش کے فلٹرز کا استعمال کرتے ہوئے). کنٹرولر اس کے بعد معلومات لے لیتا ہے اور اسے متعلقہ دیکھیں (تلاش کا نظریہ، پرنٹ دیکھیں، تفصیل کے نقطہ نظر وغیرہ وغیرہ) پر منتقل ہوتا ہے اور معلومات پیش کی جاتی ہے (کے ذریعے> ملاحظہ کریں >) اس صارف کو جو درخواست کی شروعات ہوئی تھی. یہ MVC پیٹرن کے بنیادی عناصر ہیں، جس نے فن تعمیراتی نمونوں کے سپاوٹنگ مختلف حالتوں کو تیار کیا ہے، جیسے ماڈل-دیکھیں-پریزنٹر (ایم وی پی)، ماڈل-دیکھیں-دیکھیں موڈیل (ایم وی وی ایم)، ہیرشاخیل ماڈل-دیکھیں-کنٹرولر (HMVC)، اور ماڈل دیکھیں دیکھیں اڈاپٹر (ایم ایم اے)، وغیرہ وغیرہ ایم وی پی پیٹرن ماڈل دیکھیں - پریزنٹیشن (MVP)

MVP پیٹرن

تھوڑی عرصے تک MVC کا ایک قسم ہے. یہ خاص طور پر ٹیسٹ آٹومیشن کے لئے ڈیزائن کیا گیا تھا جہاں مقصد کوڈ کا مقدار آٹومیشن کے ذریعے جانچ کیا جاسکتا ہے، اور پیٹرن پیش نظارہ پرت کے ساتھ کچھ مسائل کو حل کرتی ہے، UI سے کاروباری منطق کو الگ کر دیتا ہے.

اسکرین منظر ہے، جس میں دکھاتا ہے وہ اعداد و شمار ماڈل ہے، اور پریزنٹرٹر دونوں کو ایک ساتھ مل جاتا ہے. MVP علیحدہ ذمہ داریاں کے ساتھ مندرجہ ذیل اجزاء پر مشتمل ہیں:

ماڈل

(ڈیٹا کو ظاہر کیا جاتا ہے) کی وضاحت کرتا ہے دیکھیں

  • (ماڈل اور راستے سے صارف کی درخواستوں سے متعلق معلومات کو ظاہر کرتا ہے پریزنٹیشن). پریزنٹیشن
  • (ملاحظہ کریں اور ماڈل کے درمیان بات چیت اور ان کو مل کر ہیک کریں)
  • دیکھیں (ایک ویب صفحہ) کے واقعات (صارف کی درخواستوں) کو فروغ دینے کے ذریعے پیج کنٹرولز کو دکھاتا ہے اور انتظام کرتا ہے.

پریزنٹیشن اس کو شروع کیا گیا تھا دیکھیں . پریزنٹیشن

دیکھیں کو تبدیل کرنے کے لئے ماڈل کو پڑھنے اور اپ ڈیٹ کرکے ان واقعات کا جواب دیتا ہے اور اس وجہ سے پریزنٹیشن کی ذمہ داری ہے ماڈل اور دیکھیں باندھنے کے لئے. دیکھ کر MVC اور

MVP پیٹرن کے بعد، عامیت دونوں میں ہر جزو کے لئے علیحدہ ذمہ داریاں ہیں اور وہ دیکھیں (UI) کے درمیان علیحدگی کو فروغ دیتے ہیں اور ماڈل (ڈیٹا). ان پیٹرنوں کے درمیان اہم فرق واضح ہیں کہ نمونہ کیسے لاگو ہوتے ہیں. MVP اعلی درجے کی حل کے لئے لاگو کرنے کے لئے ایک پیچیدہ نمونہ ہوسکتا ہے لیکن اگر یقینی طور پر ڈیزائن شدہ حل کے طور پر لاگو ہوتا ہے تو یقینی طور پر بہت اچھا فائدہ ہوتا ہے، اگرچہ یہ ضروری حل کے لۓ مناسب انتخاب نہیں ہوتا. MVVM پیٹرن

ماڈل دیکھیں دیکھیں دیکھیں موڈیل (MVVM)

MVVM

پیٹرن

خاص طور پر ونڈوز پریزنٹیشن فاؤنڈیشن (WPF) اور مائیکروسافٹ سلور لائٹ پلیٹ فارمز کے لئے ڈیزائن کیا گیا تھا، اور یہ ہو سکتا ہے. تمام XAML [i] پلیٹ فارم پر استعمال کیا جاتا ہے. WPF ایک مائیکروسافٹ سسٹم ہے جس میں ونڈوز پر مبنی پروگراموں میں صارف کے انٹرفیسز کی تقسیم ہوتی ہے اور پہلے ہی اس میں جاری ہوا تھا. این ٹی فریم ورک 3. 0. MVVM MVC سے بہتر کیا گیا تھا اور اس طرز میں

دیکھیں

رویے، واقعات، اور ڈیٹا پابندیوں کے ساتھ فعال ہے، اور دیکھیں ViewModel کے ساتھ مطابقت رکھتا ہے (جس میں پیش نظارہ کی علیحدگی کو یقینی بناتا ہے اور طریقوں کو بے نقاب کرتا ہے اور ماڈل . ایم وی وی ایم کو منظم اور ہراساں کرنے کا حکم دیتا ہے. تین بنیادی اجزاء: ماڈل (توثیق اور کاروباری منطق کے ساتھ اعداد و شمار کی نمائندگی کرتا ہے) دیکھیں > (نقطہ نظر کی ساخت، ترتیب، اور صارف کو اسکرین پر دیکھتا ہے اس کی ظاہری شکل کے لئے ذمہ دار ہے. مثالی طور پر، XAML کے ساتھ خالص طور پر یہ قول ایک مخصوص کوڈ کے ساتھ متعین ہوتا ہے جس میں کاروباری منطق نہیں ہے. دو طرفہ ڈیٹا

دیکھیں موڈیل (ملاحظہ کے ساتھ ماڈل کو مطابقت پذیر کرنے کے قابل ہونے کے قابل ہونے کے لئے

  • دیکھیں اور
  • دیکھیں موڈیل کے درمیان بائنڈنگ ای ماڈل، اور اعداد و شمار (ماڈیول) کو جوڑی کرنے کے طریقوں اور حکم دیتا ہے. دیکھیں دیکھیں موڈیل
  • (ڈیٹا بائنڈنگ اور طریقوں کے ذریعہ) سے ڈیٹا وصول کرتا ہے، اور رن ٹائم میں، دیکھیں

میں واقعات کا جواب دیتے وقت تبدیل ہوجائے گا. دیکھیں موڈیل . دیکھیں موڈیل دیکھیں اور ماڈل

کے درمیان ثالثی اور دیکھیں منطق کو سنبھالا. یہ ماڈل کے ساتھ بات چیت کرتا ہے - اسے ماڈل سے ڈیٹا لے اور اسے پیش کرنے کیلئے دیکھیں کو پیش کرنا. یہ اجزاء سب ایک دوسرے سے طے شدہ ہوتے ہیں جو ان پر آزادانہ طور پر کام کرنے کے لئے زیادہ سے زیادہ لچکدار، یونٹ ٹیسٹ کی تزئین کو الگ کرنے اور کسی دوسرے جزو پر اثر انداز کرنے کے بغیر ان کو تبدیل کرنے کی اجازت دیتا ہے. یہ ساخت ماڈل اور دیگر اجزاء کو آزادانہ طور پر تیار کرنے کی اجازت دیتا ہے، اور ڈویلپرز کو اس وقت کے حل کے مختلف پہلوؤں پر کام کرنے کی اجازت دیتا ہے. مثال کے طور پر، جہاں ڈیزائنرز دیکھیں پر کام کررہے ہیں، تو وہ صرف دیگر اجزاء تک رسائی کے بغیر اعداد و شمار کے نمونے پیدا کرسکتے ہیں. یہ XAML میں دیکھیں

کو لاگو کیا جاتا ہے جیسا کہ صارف انٹرفیس کے آسان دورے کی سہولت فراہم کرتا ہے.

جیسا کہ ایم ایم پی سے پہلے ذکر کیا گیا ہے، سادہ حل فن تعمیر اور ڈیزائن کے پیٹرن کی ضرورت نہیں ہوگی، جیسے "ہیلو ورلڈ!"کسی بھی پیٹرن پر عمل کرنے کے لئے بہت بنیادی ہے؛ تاہم، جیسا کہ زیادہ خصوصیات، افعال، اور اجزاء متعارف کرایا جاتا ہے، درخواست کی پیچیدگی بڑھ جاتی ہے اور اسی طرح کوڈ کی مقدار کو منظم کرنے کی ضرورت ہے. خلاصہ صارف انٹرفیس کی ترقی کے آغاز سے، ترقی کے عمل کو آسان بنانے کے لئے ڈیزائن پیٹرن تیزی سے مقبول بن رہے ہیں، ایپلی کیشنز زیادہ سکلیبل قابل بناتی ہے اور یہ آسان جانچ کی سہولت فراہم کرتی ہے. MVP اور MVVM پیٹرن کے درمیان Illustrated فرق: دونوں MVP

اور MVVM ،

دیکھیں

ایپلی کیشن کا اندراج نقطہ ہے > میں

MVP

  • ، وہاں دیکھیں اور پریزنٹیشن کے درمیان ایک سے ایک نقشه موجود ہے، جہاں MVVM ، تعلقات ہے دیکھیں
  • اور دیکھیں موڈیل کے درمیان MVP بنیادی طور پر ونڈوز فارم اور ونڈوز فون ایپلی کیشنز کے لئے استعمال کیا جاتا ہے اور MVVM Silverlight، WPF، Knockout / AngularJS وغیرہ کے لئے ڈیزائن کیا گیا ہے