MVC، MVP، MVVM: کون سا انتخاب کرنا ہے؟

MVC، MVP، MVVM: کون سا انتخاب کرنا ہے؟

جدید ایپلی کیشنز کو ایسی متعدد خصوصیات کی ضرورت ہوتی ہے کہ ان کو تیار کرنے کا عمل سائز اور پیچیدگی میں بڑھ گیا ہو۔ مدد کرنے کے لیے، آپ آرکیٹیکچرل ڈیزائن کا پیٹرن استعمال کر سکتے ہیں۔ وہ ایپلی کیشنز کی تعمیر میں مدد کرتے ہیں جن کی جانچ اور دیکھ بھال کرنا آسان ہے۔





تین سب سے مشہور ڈیزائن پیٹرن MVC، MVP، اور MVVM ہیں۔ MVC کا مطلب ماڈل، ویو، اور کنٹرولر ہے، جبکہ MVP کا مطلب ماڈل، ویو، اور پریزنٹر ہے، اور MVVM کا مطلب ماڈل، ویو، اور ویو ماڈل ہے۔





آرکیٹیکچرل اور ڈیزائن پیٹرن

آرکیٹیکچرل پیٹرن

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





ڈیزائن پیٹرن

ایک ڈیزائن پیٹرن ایک باضابطہ بہترین عمل ہے جسے آپ ایپلیکیشن یا سسٹم ڈیزائن کرتے وقت عام مسائل کو حل کرنے کے لیے استعمال کر سکتے ہیں۔

آرکیٹیکچرل اور ڈیزائن پیٹرن کے درمیان فرق

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



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

دوستوں کے ساتھ نیٹ فلکس آن لائن کیسے دیکھیں۔

ہمیں آرکیٹیکچرل ڈیزائن پیٹرن کی ضرورت کیوں ہے؟

سافٹ ویئر ڈویلپمنٹ کے دوران، آپ عام مسائل کو حل کرنے کے لیے آرکیٹیکچرل ڈیزائن پیٹرن استعمال کر سکتے ہیں۔ اچھا فن تعمیر بھی آپ کی مدد کر سکتا ہے:





  • پیچیدہ کاموں کو آسان کاموں میں تقسیم کریں۔
  • کیڑے کو کم کریں۔
  • قابل آزمائش اور برقرار رکھنے کے قابل کوڈ تیار کریں۔

لیکن آرکیٹیکچرل پیٹرن کے بغیر، آپ کو اپنی ایپ کی کاروباری منطق کو برقرار رکھنے میں مشکلات کا سامنا کرنا پڑ سکتا ہے۔

ماڈل، ویو، ویو ماڈل، کنٹرولر، اور پیش کنندہ

اس سے پہلے کہ آپ ہر پیٹرن کو دیکھیں، یہاں وہ شرائط ہیں جو ان کو بناتے ہیں:





  • ماڈل ڈیٹا کو ذخیرہ کرتا ہے اور ڈیٹا بیس کے ساتھ براہ راست بات چیت کرتا ہے۔ ماڈل وہ حصہ ہے جو آپ کے ڈیٹا اور ایپلیکیشن منطق کی نمائندگی کرتا ہے۔ یہ کاروباری اصولوں کی وضاحت کرتا ہے جو ڈیٹا ہینڈلنگ، ترمیم، یا پروسیسنگ کا انتظام کرتے ہیں۔
  • دیکھیں ماڈل کا ڈیٹا دکھاتا ہے اور یوزر انٹرفیس میں ڈیٹا کی نمائندگی کے لیے ذمہ دار ہے۔
  • ماڈل دیکھیں ایم وی وی ایم پیٹرن کے لیے خصوصی ہے۔ یہ ویو لیئر کا خلاصہ ہے اور ماڈل ڈیٹا کے ریپر کے طور پر بھی کام کرتا ہے۔
  • کنٹرولر وہ جزو ہے جو منظر اور ماڈل کو مربوط کرتا ہے۔
  • پیش کنندہ ایک ایسا جزو ہے جو صرف MVP ماڈل میں موجود ہے۔ پیش کنندہ منظر کے جزو سے ان پٹ حاصل کرتا ہے اور ماڈل کی مدد سے ڈیٹا پر کارروائی کرتا ہے۔

MVC، MVP، اور MVVM پیٹرنز

ماڈل-دیکھیں-کنٹرولر پیٹرن

دی ایم وی سی آرکیٹیکچرل پیٹرن پہلا تھا، اور یہ آج ویب ایپلیکیشنز کے میدان میں مقبول ہے۔ اسے 1970 کی دہائی میں متعارف کرایا گیا تھا۔ یہ پیٹرن آپ کو Separation of Concerns (SoC) کے ارد گرد ایک ایپلیکیشن بنانے دیتا ہے۔ یہ آپ کی درخواست کو جانچنے، برقرار رکھنے اور تیار کرنے کے لیے درکار کوششوں کو آسان بناتا ہے۔

MVC پیٹرن میں، ماڈل کو منظر یا کنٹرولر کی کوئی سمجھ نہیں ہے۔ جب بھی منظر اور کنٹرولر میں کوئی تبدیلی آئے گی تو ماڈل کے مبصر کو الرٹ موصول ہوگا۔ کنٹرولر روٹنگ کے عمل کو ماڈل کو متعلقہ منظر سے جوڑنے میں مدد کرتا ہے۔

میرا پی ایس این نام کیسے تبدیل کیا جائے۔

MVC پیٹرن کے کچھ فوائد یہ ہیں:

  • خدشات کی علیحدگی (زیادہ توجہ مرکوز)۔
  • کوڈ کو جانچنا اور اس کا نظم کرنا آسان بناتا ہے۔
  • ایپلیکیشن کی پرتوں کے ڈیکپلنگ کو فروغ دیتا ہے۔
  • کوڈ کی بہتر تنظیم اور دوبارہ استعمال کی اہلیت۔

یہاں یہ ہے کہ MVC کیسے کام کرتا ہے:

  ایک خاکہ کی تصویر جو یہ بتاتی ہے کہ MVC کیسے کام کرتا ہے۔

SoC کی وجہ سے، MVC کوڈ کا سائز کم کر سکتا ہے اور ایک اچھا کوڈ بنا سکتا ہے جو صاف اور قابل انتظام ہو۔

ماڈل-دیکھیں-پیش کنندہ پیٹرن

MVP پیٹرن MVC کے ساتھ دو اجزاء کا اشتراک کرتا ہے: ماڈل اور ویو۔ یہ کنٹرولر کو پیش کنندہ سے بدل دیتا ہے۔ پیش کنندہ — جیسا کہ اس کے نام سے ظاہر ہے — کچھ پیش کرنے کے لیے استعمال ہوتا ہے۔ یہ آپ کو زیادہ آسانی سے منظر کا مذاق اڑانے کی اجازت دیتا ہے۔

MVP میں، پیش کنندہ کے پاس 'مڈل مین' کی فعالیت ہوتی ہے کیونکہ تمام پریزنٹیشن منطق اس کی طرف دھکیل دی جاتی ہے۔ MVP میں منظر اور پیش کنندہ بھی ایک دوسرے سے آزاد ہیں اور ایک انٹرفیس کے ذریعے بات چیت کرتے ہیں۔

یہاں ایک مثال ہے کہ MVP پیٹرن کیسے کام کرتا ہے:

  ایک خاکہ کی تصویر جو یہ بتاتی ہے کہ MVP کیسے کام کرتا ہے۔

پیش کنندہ منظر کے ذریعے صارف سے ان پٹ وصول کرتا ہے۔ اس کے بعد یہ ماڈل کی مدد سے صارف کے اعمال پر کارروائی کرتا ہے، نتائج کو واپس منظر پر منتقل کرتا ہے۔ پیش کنندہ انٹرفیس کے ذریعے منظر کے ساتھ بات چیت کرتا ہے۔

ماڈل-View-ViewModel پیٹرن

MVVM MVC کا جدید ارتقاء ہے۔ MVVM کا بنیادی مقصد ڈومین منطق اور پریزنٹیشن پرت کے درمیان واضح علیحدگی فراہم کرنا ہے۔ MVVM ویو اور ویو ماڈل کے درمیان دو طرفہ ڈیٹا بائنڈنگ کو سپورٹ کرتا ہے۔

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

یہاں ایک مثال ہے کہ MVVM کیسے کام کرتا ہے:

  ایک خاکہ کی تصویر جو یہ بتاتی ہے کہ MVVM کیسے کام کرتا ہے۔

MVC، MVP، اور MVVM کب استعمال کریں۔

اب جب کہ آپ نے ہر پیٹرن کے بارے میں جان لیا ہے، معلوم کریں کہ انہیں کب استعمال کرنا ہے۔

جلانے والی آگ کو اینڈرائیڈ ٹیبلٹ میں تبدیل کریں۔

MVC کب استعمال کریں۔

MVC محض تحفظات کی علیحدگی کا نفاذ ہے۔ اگر آپ کی درخواست کو ڈیٹا (ماڈل)، ڈیٹا کرنچنگ (کنٹرولر) اور ڈیٹا پریزنٹیشن (دیکھیں) کو الگ کرنے کی ضرورت ہے، تو MVC اچھی طرح کام کرے گا۔ MVC ایسی ایپلیکیشن میں بھی اچھی طرح سے کام کرتا ہے جہاں ڈیٹا سورس اور/یا ڈیٹا پریزنٹیشن کسی بھی وقت تبدیل ہو سکتی ہے۔

MVP کب استعمال کریں۔

جب آپ کی درخواست میں دو طرفہ بہاؤ ہو تو آپ MVP استعمال کر سکتے ہیں۔ اگر صارف کے تعاملات کو ماڈل سے کسی چیز کی درخواست کرنے کی ضرورت ہے، اور اس درخواست کا نتیجہ فوری طور پر UI کو تبدیل کر دے گا، MVP پر غور کریں۔

MVVM کب استعمال کریں۔

آپ MVVM استعمال کرنا چاہیں گے جب:

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

آپ کو کون سا نمونہ منتخب کرنا چاہئے؟

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

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