Model–view–presenter
ماڈل ویو پریزنٹر (ایم وی پی) ماڈل ویو کنٹرولر (ایم وی سی) آرکیٹیکچرل پیٹرن سے ماخوذ ہے، اور زیادہ تر یوزر انٹرفیس بنانے کے لیے استعمال ہوتا ہے۔ ایم وی پی میں، پیش کنندہ "مڈل مین" کی فعالیت کو فرض کرتا ہے۔ ایم وی پی میں، تمام پریزنٹیشن منطق کو پیش کنندہ کی طرف دھکیل دیا جاتا ہے۔ ماڈل ویو پریزنٹر سافٹ ویئر پیٹرن کی ابتدا 1990 کی دہائی کے اوائل میں ٹالیجنٹ میں ہوئی، جو ایپل، آئی بی ایم، اور ہیولیٹ پیکارڈ کا مشترکہ منصوبہ ہے۔ ایم وی پی ٹالیجنٹ کے سی + + پر مبنی کامن پوائنٹ ماحول میں ایپلی کیشن ڈویلپمنٹ کے لیے بنیادی پروگرامنگ ماڈل ہے۔ اس نمونے کو بعد میں ٹالیجنٹ نے جاوا منتقل کیا اور ٹالیجنٹ سی ٹی او مائیک پوٹل نے ایک مقالے میں اسے مقبول بنایا۔ 1998 میں ٹالیجنٹ کے بند ہونے کے بعد، ڈولفن سمال ٹاک کے اینڈی بوور اور بلیئر میک گلاشن نے اپنے سمال ٹاک یوزر انٹرفیس فریم ورک کی بنیاد بنانے کے لیے ایم وی پی پیٹرن کو ڈھال لیا۔ 2006 میں، مائیکروسافٹ نے. NET فریم ورک میں یوزر انٹرفیس پروگرامنگ کے لیے اپنی دستاویزات اور مثالوں میں MVP کو شامل کرنا شروع کیا۔ ایم وی پی پیٹرن کے ارتقاء اور متعدد متغیرات، بشمول ایم وی پی کا دوسرے ڈیزائن پیٹرن جیسے ایم وی سی سے تعلق، مارٹن فاؤلر کے ایک مضمون میں اور ڈیریک گریر کے دوسرے مضمون میں تفصیل سے زیر بحث ہے۔ جائزہ ایم وی پی ایک یوزر انٹرفیس آرکیٹیکچرل پیٹرن ہے جو خودکار یونٹ ٹیسٹنگ کو آسان بنانے اور پریزنٹیشن منطق میں خدشات کی علیحدگی کو بہتر بنانے کے لیے بنایا گیا ہے: ماڈل ایک انٹرفیس ہے جو ڈیٹا کو ظاہر کرنے یا بصورت دیگر یوزر انٹرفیس میں عمل کرنے کی وضاحت کرتا ہے۔ ویو ایک غیر فعال انٹرفیس ہے جو ڈیٹا (ماڈل) کو دکھاتا ہے اور اس ڈیٹا پر عمل کرنے کے لیے پیش کنندہ کو صارف کے حکم (واقعات) کا راستہ دکھاتا ہے۔ پیش کنندہ ماڈل اور منظر پر عمل کرتا ہے۔ یہ ذخائر (ماڈل) سے ڈیٹا بازیافت کرتا ہے، اور اسے ویو میں ڈسپلے کے لیے فارمیٹ کرتا ہے۔ عام طور پر، ویو کا نفاذ ٹھوس پیش کنندہ آبجیکٹ کو فوری طور پر پیش کرتا ہے، جو خود کو ایک حوالہ فراہم کرتا ہے۔ مندرجہ ذیل سی #کوڈ ایک سادہ ویو کنسٹرکٹر کو ظاہر کرتا ہے: پبلک کلاس پریزنٹر: آئی پریزنٹر {پبلک پریزنٹر (آئی ویو ویو) {//.}} پبلک کلاس ویو: آئی ویو {پرائیویٹ آئی پریزنٹر _ پریزنٹر ؛ پبلک ویو () {_ پریزنٹر = نیا پریزنٹر (یہ) ؛} ویو میں اجازت دی گئی منطق کی ڈگری مختلف نفاذ کے درمیان مختلف ہوتی ہے۔ ایک انتہا پر، نقطہ نظر مکمل طور پر غیر فعال ہے، جو تمام تعامل کی کارروائیوں کو پیش کنندہ کو بھیجتا ہے۔ اس فارمولیشن میں، جب کوئی صارف ویو کے ایونٹ میتھڈ کو متحرک کرتا ہے، تو یہ پیش کنندہ کے ایک ایسے طریقہ کو مدعو کرنے کے سوا کچھ نہیں کرتا جس میں کوئی پیرامیٹرز اور واپسی کی قیمت نہ ہو۔ اس کے بعد پیش کنندہ ویو انٹرفیس کے ذریعے بیان کردہ طریقوں کے ذریعے ویو سے ڈیٹا حاصل کرتا ہے۔ آخر میں، پیش کنندہ ماڈل پر کام کرتا ہے اور آپریشن کے نتائج کے ساتھ ویو کو اپ ڈیٹ کرتا ہے۔ ماڈل ویو پریزنٹر کے دیگر ورژن کچھ عرض البلد کی اجازت دیتے ہیں جس کے حوالے سے کلاس کسی خاص تعامل، واقعہ، یا کمانڈ کو سنبھالتی ہے۔ یہ اکثر ویب پر مبنی آرکیٹیکچرز کے لیے زیادہ موزوں ہوتا ہے، جہاں ویو، جو کلائنٹ کے براؤزر پر چلتا ہے، کسی خاص تعامل یا کمانڈ کو سنبھالنے کے لیے بہترین جگہ ہو سکتی ہے۔ پرتوں کے نقطہ نظر سے، پیش کنندہ کلاس کو کثیر سطحی فن تعمیر کے نظام میں ایپلی کیشن پرت سے تعلق رکھنے والا سمجھا جا سکتا ہے، لیکن اسے ایپلی کیشن پرت اور یوزر انٹرفیس پرت کے درمیان اپنی ایک پیش کنندہ پرت کے طور پر بھی دیکھا جا سکتا ہے۔ نفاذ. NET. NET ماحول کسی بھی دوسرے ترقیاتی ماحول کی طرح MVP پیٹرن کی حمایت کرتا ہے۔ ایک ہی ماڈل اور پریزنٹر کلاس کو متعدد انٹرفیس کی حمایت کے لیے استعمال کیا جا سکتا ہے، جیسے کہ ASP.NET ویب ایپلی کیشن، ونڈوز فارمز ایپلی کیشن، یا سلور لائٹ ایپلی کیشن۔ پیش کنندہ ایک انٹرفیس کے ذریعے ویو سے/تک کی معلومات حاصل کرتا ہے اور سیٹ کرتا ہے جس تک انٹرفیس (ویو) جزو کے ذریعے رسائی حاصل کی جا سکتی ہے۔ نمونے کو دستی طور پر نافذ کرنے کے علاوہ، ایم وی پی پیٹرن کو زیادہ خودکار انداز میں سپورٹ کرنے کے لیے ایک ماڈل ویو پریزنٹر فریم ورک استعمال کیا جا سکتا ہے۔ جاوا (اے ڈبلیو ٹی/سوئنگ/ایس ڈبلیو ٹی) ایپلی کیشن میں، ایم وی پی پیٹرن کو یوزر انٹرفیس کلاس کو ویو انٹرفیس کو نافذ کرنے کی اجازت دے کر استعمال کیا جا سکتا ہے۔ یہی نقطہ نظر جاوا ویب پر مبنی ایپلی کیشنز کے لیے بھی استعمال کیا جا سکتا ہے، کیونکہ جدید جاوا جزو پر مبنی ویب فریم ورک موٹے کلائنٹس کی طرح ہی جزو کے نقطہ نظر کا استعمال کرتے ہوئے کلائنٹ سائیڈ منطق کی ترقی کی اجازت دیتا ہے۔ گوگل ویب ٹول کٹ میں ایم وی پی کو لاگو کرنے کے لیے صرف یہ ضروری ہے کہ کچھ اجزاء ویو انٹرفیس کو لاگو کریں۔ واڈن یا ایکو 2 ویب فریم ورک کا استعمال کرتے ہوئے بھی یہی نقطہ نظر ممکن ہے۔ جاوا فریم ورک میں درج ذیل شامل ہیں: جاوا ایف ایکس ایکو 2 گوگل ویب ٹول کٹ جے فیس سوئنگ واڈین زیڈ کے پی ایچ پی پی ایچ پی کے لچکدار رن ٹائم ماحول کے طور پر، ایپلیکیشن منطق کے نقطہ نظر کے وسیع امکانات ہیں۔ ماڈل لیئر کا نفاذ اینڈ ایپلیکیشن پروگرامر پر چھوڑ دیا جاتا ہے۔ پی ایچ پی فریم ورک میں درج ذیل شامل ہیں: کوڈ اگنیٹر لاراویل نیٹ فریم ورک ملٹیٹیئر آرکیٹیکچر ماڈل-ویو-کنٹرولر ماڈل-ویو-ویو ماڈل پیش کنندہ پہلے (سافٹ ویئر اپروچ) بیرونی حوالہ جات لنک ماڈل ویو پیش کنندہ مثال جی ڈبلیو ٹی پروجیکٹ سے۔ اسٹیک ایکسچینج سافٹ ویئر ڈیزائن پیٹرن میں ماڈل-ویو-پریزنٹر کے نفاذ کے خیالات آرکیٹیکچرل پیٹرن (کمپیوٹر سائنس)