عام طور پر بار بار چلنے والے سافٹ وئیر کے دشواریوں کے ل object اعلی درجے کی آبجیکٹ پر مبنی حل ہیں۔ نمونوں کو دوبارہ استعمال کے قابل ڈیزائن اور اشیاء کا تعامل ہوتا ہے۔ ڈیزائن کے پیچیدہ حلوں پر گفتگو کرتے وقت ہر نمونہ کا ایک نام ہوتا ہے اور وہ الفاظ کی زبان کا حصہ بن جاتا ہے۔
جاوا اسکرپٹ میں ڈیزائن پیٹرن کیا ہیں؟
ایک کے طور پر تعریف کی جا سکتی ہے سافٹ ویئر ٹیمپلیٹ یا کسی مسئلے کو حل کرنے کی وضاحت جو ایک سافٹ ویئر ایپلی کیشن یا سوفٹویئر فریم ورک کو ڈیزائن کرتے وقت متعدد مثالوں میں پیش آتی ہے۔
سرنی چھانٹ رہا ہے سی ++
اب ، ہم گینگ آف فور (جی او ایف) پر تبادلہ خیال کریں
گینگ آف فور
23 گینگ آف فور (جی او ایف) پیٹرن کو عام طور پر دوسرے تمام نمونوں کی بنیاد سمجھا جاتا ہے۔
گینگ آف فور (جی او ایف) ڈیزائن کے نمونوں سے:
دوبارہ پریوست آبجیکٹ اورینٹڈ سافٹ ویئر ، ایڈیسن - ویسلے پروفیشنل کمپیوٹنگ سیریز کے عنصر ایرک گاما ، رچرڈ ہیلم ، رالف جھونسن ، اور جان ولائسائڈز۔ ٹیوہ 23 GoF پیٹرن عام طور پر دوسرے تمام نمونوں کی بنیاد سمجھا جاتا ہے۔انہیں تین گروہوں میں درجہ بندی کیا گیا ہے۔ تخلیقی ، ساختی اور طرز عمل۔
ڈیزائن پیٹرن کی قسمیں
جاوا اسکرپٹ میں بنیادی طور پر تین مختلف قسم کے ڈیزائن پیٹرن ہیں۔ وہ مندرجہ ذیل ہیں:
تخلیقی مراسلے
خلاصہ فیکٹری: یہ کلاس کے متعدد کنبہوں کے ساتھ مثال بناتا ہے۔ اس سے ایسے کنبے بنانے کے لئے ایک انٹرفیس فراہم ہوتا ہے جو متعلقہ یا انحصار کرنے والی اشیاء ان کی ٹھوس کلاسوں کی کوئی وضاحت کے بغیر ہیں۔
بلڈر: اس نے آبجیکٹ کی تعمیر کو اپنی نمائندگی سے الگ کردیا۔ ایک پیچیدہ شے کی تعمیر کو بھی اس کی نمائندگی سے الگ کرتا ہے تاکہ مختلف نمائندوں کے ساتھ بالکل اسی طرح تعمیراتی عمل تشکیل دیا جاسکے۔
فیکٹری کا طریقہ: یہ متعدد مشتق کلاسوں کے لئے مثال بناتا ہے۔ کسی شے کو بنانے کے لئے ایک انٹرفیس کی بھی وضاحت کرتا ہے ، لیکن اس سے یہ ذیلی کلاس فیصلہ کرنے دیتی ہے کہ کونسی کلاس کو تیز کرنا ہے۔ اس میں ایک فیکٹری طریقہ بھی ہے جس کی وجہ سے ایک طبقے کو ذیلی طبقات میں ترسیل مل جاتی ہے۔
نمونہ: یہ مکمل طور پر ابتدا کی مثال ہے جس کی کاپی یا کلون کیا جاسکتا ہے۔ خاص طور پر ، ایک پروٹو ٹائپیکل مثال کے استعمال سے جس طرح کی اشیاء تیار کی جائیں ، اس پروٹو ٹائپ کو کاپی کرکے نئی چیزیں بنائیں۔
سنگلٹن: یہ کاپی کرنے یا کلون کرنے کی مکمل مثال دی گئی ہے۔پروٹوٹائپیکل مثال کے طور پر تخلیق کرنا اور اس پروٹو ٹائپ کو کاپی کرکے نئی اشیاء تیار کرنا مخصوص قسم کی اشیاء کی ہے۔
جاوا میں کسی چیز کو کاپی کرنے کا طریقہ
ساختی مراسلے
اڈاپٹر: یہ مختلف کلاسوں کے انٹرفیس سے میل کھاتا ہے۔ کلاس کے انٹرفیس کو دوسرے انٹرفیس میں تبدیل کرتا ہے سوائے اس کے کہ اس کے پاس موکل موجود ہو۔ اڈاپٹر کلاسوں کو بھی ساتھ کام کرنے دیتا ہے جو عدم مطابقت کے انٹرفیس کی وجہ سے نہیں ہوسکتا تھا۔
پل: یہ کسی شے کے انٹرفیس کو اس کے نفاذ سے الگ کرتا ہے۔ اس کے نفاذ سے کسی تجرید کا اعلان کرنا تاکہ دونوں آزادانہ طور پر مختلف ہوسکیں۔
جامع: ایک درخت کا ڈھانچہ سادہ اور جامع اشیاء کا ہوتا ہے ، جو جزوی ڈھانچے کی نمائندگی کرنے کے لئے درختوں کے ڈھانچے میں اشیاء پر مشتمل ہوتا ہے۔ جامع گاہکوں کو انفرادی اشیاء اور اشیاء کی ترکیبوں کا یکساں سلوک کرنے دیتا ہے۔
ڈیکوریٹر: متحرک طور پر اشیاء میں ذمہ داریوں کو شامل کرتا ہے۔ متحرک طور پر کسی شے کے ساتھ اضافی ذمہ داریوں کو جوڑتا ہے۔ ڈیکوریٹر فعالیت کو بڑھانے کے ل sub ذیلی کلاسنگ کا لچکدار متبادل بھی فراہم کرتے ہیں۔
اگواڑا: ایک واحد کلاس جو ایک پورے سب سسٹم کی نمائندگی کرتا ہے اور سسٹم میں انٹرفیس کے سیٹ کو یکساں انٹرفیس مہیا کرتا ہے۔ Façade ایک اعلی سطحی انٹرفیس کی وضاحت کرتا ہے جس کے استعمال سے سب سسٹم کو استعمال کرنا آسان ہوجاتا ہے۔
فلائی ویٹ: ایک عمدہ دانے دار مثال کے طور پر بڑی تعداد میں باریک باریک اشیاء کو موثر انداز میں سپورٹ کرنے کے لئے موثر اشتراک کے لئے استعمال کیا جاتا ہے۔ فلائی ویٹ ایک مشترکہ چیز ہے جو متعدد سیاق و سباق میں بیک وقت استعمال ہوسکتی ہے۔فلائی ویٹ ہر سیاق و سباق میں ایک آزاد شے کی حیثیت سے بھی کام کرتا ہے - یہ ان چیزوں کی مثال سے الگ نہیں ہے جو مشترکہ نہیں ہیں۔
پراکسی: یہ وہ چیز ہے جو کسی اور شے کی نمائندگی کرتی ہے۔ اس تک رسائی پر قابو پانے کے لئے یہ ایک سروگیٹ یا پلیس ہولڈر آبجیکٹ فراہم کرتا ہے۔
طرز عمل:
ذمہ داری کا سلسلہ: یہ چیزوں کی زنجیر کے درمیان کسی درخواست کو منظور کرنے کا ایک طریقہ ہے۔ یہ مرسل کے ساتھ ہونے والے جوڑے سے اجتناب کرتا ہے اور ایک سے زیادہ شے کو درخواست کو سنبھالنے کا موقع دے کر اپنے وصول کنندہ کو درخواست بھیجتا ہے۔ وصول کرنے والی چیزوں کو زنجیروں سے جکڑا جاتا ہے اور درخواست کو سلسلہ کے ساتھ ساتھ گزر جاتا ہے جب تک کہ کوئی شے اسے سنبھال نہ دے۔
کمانڈ: یہ کمانڈ کی درخواست کو بطور اعتراض گھیر لیتے ہیں۔ درخواست کو بطور اعتراض سمجھا جاتا ہے ، لہذا آپ کو مختلف درخواستوں ، قطار یا لاگ ان درخواستوں کے ساتھ موکلوں کو پیرامیٹرائز کرنے اور ناقابل واپسی کارروائیوں کی حمایت کرتے ہیں۔
ترجمان: یہ پروگرام میں زبان کے عناصر کو شامل کرنے کا ایک طریقہ ہے۔ ایک زبان دی گئی ہے ، اس کے گرائمر کے ساتھ ایک ترجمانی کے ساتھ نمائندگی کی وضاحت کریں جو زبان میں جملے کی ترجمانی کے لئے نمائندگی کا استعمال کریں۔
Iterator: مجموعے کے عناصر کی ترتیب وار رسائی مجموعی شے کے عناصر تک اس کی بنیادی نمائندگی کو بے نقاب کیے بغیر ترتیب سے رسائی فراہم کرتی ہے۔
ثالث: یہ کلاسوں کے مابین مواصلات کو آسان بنانے کی وضاحت کرتا ہے۔ کسی ایسی شے کی وضاحت کریں جس سے گنجائش ہوجائے کہ اشیاء کا ایک سیٹ کیسے تعامل کرتا ہے۔ ثالث اشیاء کو ایک دوسرے کا واضح طور پر تذکرہ کرنے سے رکھے ہوئے ڈھیلے جوڑے کو فروغ دیتا ہے ، اور اس سے آپ ان کی باہمی تعامل کو آزادانہ طور پر مختلف کرسکتے ہیں۔
میمنٹو: یہ شے کی داخلی حالت کو گرفت میں اور بحال کرتا ہے۔ یہ کسی چیز کی داخلی حالت کی گرفت ، اس کی گرفت اور بیرونی شکل کی خلاف ورزی نہیں کرتا ہے تاکہ بعد میں اس چیز کو اس حالت میں بحال کیا جاسکے۔
مبصر: متعدد کلاسوں میں تبدیلی کی اطلاع دینے کا یہ ایک طریقہ ہے۔ یہ اشیاء کے مابین ایک سے زیادہ انحصار کی وضاحت کرتا ہے تاکہ جب کسی شے کی حالت تبدیل ہوجائے تو ، اس پر انحصار کرنے والے کی تمام تر خودبخود مطلع اور اپ ڈیٹ ہوجاتی ہے۔
حالت: جب کسی شے کی حالت بدل جاتی ہے تو وہ اس کے طرز عمل کو تبدیل کردیتا ہے۔ داخلی حالت میں تبدیلی آنے پر کسی شے کو اپنے طرز عمل میں ردوبدل کی اجازت دیتا ہے۔ اعتراض اپنی کلاس کو تبدیل کرتے ہوئے دکھائی دے گا۔
حکمت عملی: یہ ایک کلاس کے اندر الگورتھم سمیٹتا ہے اور خاندانی الگورتھم کی وضاحت کرتا ہے ، ہر ایک کو مل جاتا ہے ، اور پھر تبادلہ ہوتا ہے۔ حکمت عملی الگورتھم کو استعمال کرنے والے کلائنٹس سے آزادانہ طور پر مختلف ہوتی ہے۔
سانچے: الگورتھم کے عین اقدامات کو ذیلی طبقے میں موخر کریں۔ یہ ایک آپریشن میں الگورتھم کے کنکال کی وضاحت کرتا ہے ، جس سے ذیلی طبقات کے لئے کچھ اہم اقدامات ملتوی ہوتے ہیں۔ ٹیمپلیٹ کا طریقہ کار ہمیں الگورتھم کے ڈھانچے کو تبدیل کیے بغیر الگگوریتم کے کچھ اقدامات کو ایک ذیلی کلاس بنانے کی سہولت دیتا ہے۔
سیلینیم میں اسکرین شاٹ لینے کا طریقہ
وزیٹر: یہ بغیر کسی تبدیلی کے کلاس میں ایک نئے آپریشن کی وضاحت کرتا ہے۔ آبجیکٹ کے ڈھانچے کے عناصر پر انجام دینے کے لئے ایک آپریشن کی نمائندگی کریں۔ وزیٹر آپ کو ان عناصر کی کلاسز کو تبدیل کیے بغیر ایک نیا آپریشن کی وضاحت کرنے دیتا ہے جس پر یہ کام کرتا ہے۔
اس کے ساتھ ، ہم اس مضمون کے آخر میں آتے ہیں۔ مجھے امید ہے کہ آپ جاوا اسکرپٹ میں ڈیزائن پیٹرن ، ان کی اقسام ، اہمیت اور ان کے نفاذ کو سمجھ چکے ہوں گے۔
اب جب آپ جاوا اسکرپٹ میں ڈیزائن پیٹرن کی بنیادی باتوں کو سمجھ چکے ہیں تو ، چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کا نیٹ ورک موجود ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس طلباء اور پیشہ ور افراد کے لئے ڈیزائن کیا گیا ہے جو جاوا ڈویلپر بننا چاہتے ہیں۔ کورس آپ کو جاوا پروگرامنگ میں آغاز فراہم کرنے اور جاوا کے مختلف فریم ورکس جیسے ہیبرنٹیٹ اینڈ ایڈوانس جاوا دونوں اصولوں کے ساتھ ساتھ آپ کو تربیت دینے کے لئے ڈیزائن کیا گیا ہے۔ بہار .
ہمارے لئے ایک سوال ہے؟ اس کا 'جاوا اسکرپٹ میں ڈیزائن پیٹرن' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس واپس آجائیں گے۔