setter programst-oriented program میں ایک طاقتور ڈیزائنی انداز ہے جو ترقی کرنے والوں کو اجازت دیتا ہے کہ وہ موجودہ خصوصیات کو فعال طور پر شامل کریں یہ انداز خاص طور پر اس وقت مفید ہے جب آپ ان کے اصل ماخذ کوڈ کے بغیر چیزوں کے برتاؤ کو وسعت دینا چاہتے ہیں۔

ایک ماہرِنفسیات کو سمجھ کر

بنیادی تصور (concor prestruction) کے پیچھے ایک چیز کے گرد ایک ڈھال بنانا ہے، جسے ڈیکٹر کہا جاتا ہے، جس سے نئے طرز عمل یا ذمے داری شامل ہوتی ہے۔اس رسائی میں کوڈ کی عدم ترقی اور کنٹرول کو اوپن/کلوز پر قابو پانا شامل ہوتا ہے، جس کے معنی کلاسز وسیع کرنے کے لیے کھلا ہوتا ہے مگر تبدیلی کے لیے بند ہو جاتے ہیں۔

یہ کیسے کام کرتا ہے

عملی طور پر، speror acquired تین بنیادی اجزاء پر مشتمل ہے:

  • ] کومپونٹ:] انٹرٹینمنٹ یا مواصلاتی کلاس نے مرکزی سرگرمیوں کو الٹ دیا۔
  • Concrete Component: اصل چیز جو اجزاء کو حل کرتی ہے۔
  • Decorator: ایک ایسے متضاد طبقہ جو اجزاءی تفاعل (resptural) کو عمل میں لاتا ہے اور اس میں کسی اجزاء (fombject) کا حوالہ موجود ہوتا ہے۔

اس طرح سے ، ہر ایک اپنی سرگرمی کو بڑھا کر اپنے کام میں حصہ لیتا ہے ۔

اِس کے علاوہ ، وہ اِس بات کا بھی خیال رکھتے ہیں کہ اُن کے بچے بھی اُن کے ساتھ دوستی کریں ۔

  • Flexibility: Easily مزید اضافہ یا دور کرنے والی خصوصیات کو ختم کر دیں۔
  • Reussbility: [1] دوبارہ قابلِ عمل ڈیسور بنانے سے کوڈ دوبارہ استعمال کیا جاتا ہے۔
  • کلاسوں کو سادہ رکھیں اور اپنی بنیادی ذمہ داریوں پر توجہ مرکوز کریں۔
  • اوپن/کلسیڈ پرنسپلل:] موجودہ کوڈ میں ترمیم کیے بغیر ایکشنشنل کامرس۔

عملی نمونہ

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

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

یقینی حل

تمام چیزوں کو ترتیب دینے کے طریقے کو عمل میں لانا چاہئے ۔

کُرُوُو

بنیادی ونڈو جو بنیادی کام انجام دیتا ہے

نقل و حمل

وہ ایسی کلاسیں جو کھڑکیوں کے اُوپر سے بنائی گئی چیزوں کو اُجاگر کرتی ہیں ۔

کُنَّا

جب آپ کسی ایسے شخص کو دیکھتے ہیں جو آپ کو اپنے کام میں تبدیلی لانے کی کوشش کرتا ہے تو آپ کو اِس بات کا اندازہ لگانے کی ضرورت ہے کہ آپ کو کن باتوں سے لطف اُٹھانا چاہئے ۔