C++ میں فیکٹری پیٹرن

C My Fyk Ry Py Rn



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

فیکٹری پیٹرن کا تعارف

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

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







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



فیکٹری پیٹرن کیوں استعمال کریں؟

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



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





فیکٹری پیٹرن کو C++ میں استعمال کرنے کی کچھ مزید وجوہات یہ ہیں:

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

C++ میں فیکٹری پیٹرن کی مثال

C++ میں، ہم ورچوئل فیکٹری طریقہ کے ساتھ تجریدی بیس کلاس کی وضاحت کرکے فیکٹری پیٹرن کو نافذ کرسکتے ہیں۔ اس طریقہ کار کو مطلوبہ کلاس مثال پر ایک پوائنٹر واپس کرنا چاہئے۔ اس کے بعد، ہم اس بیس کلاس سے کنکریٹ کلاسز اخذ کر سکتے ہیں اور مناسب کلاس کی مثال واپس کرنے کے لیے فیکٹری کے طریقہ کار کو اوور رائیڈ کر سکتے ہیں۔



یہاں ایک مثال ہے کہ ہم فیکٹری پیٹرن کے اس نفاذ کو کیسے استعمال کر سکتے ہیں:

# شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std ;

کلاس شکل {

عوام :

مجازی باطل ڈرا ( ) = 0 ;

جامد شکل * شکل بنائیں ( int قسم ) ;

} ;

کلاس سرکل : عوامی شکل {

عوام :

باطل ڈرا ( ) {

cout << 'ایک دائرہ کھینچنا۔' << endl ;

}

} ;

کلاس مستطیل : عوامی شکل {

عوام :

باطل ڈرا ( ) {

cout << 'ایک مستطیل ڈرائنگ۔' << endl ;

}

} ;

شکل * شکل :: شکل بنائیں ( int قسم ) {

اگر ( قسم == 1 ) {
واپسی نیا حلقہ ( ) ;
} اور اگر ( قسم == 2 ) {
واپسی نیا مستطیل ( ) ;
} اور {
واپسی nullptr ;
}
}


int مرکزی ( ) {

شکل * دائرہ = شکل :: شکل بنائیں ( 1 ) ;

دائرہ -> ڈرا ( ) ;

شکل * مستطیل = شکل :: شکل بنائیں ( 2 ) ;

مستطیل -> ڈرا ( ) ;

واپسی 0 ;

}

اس مثال میں، ہمارے پاس دو اخذ شدہ کلاسوں کے ساتھ ایک شکل کی کلاس ہے: سرکل اور مستطیل۔ شیپ کلاس میں خالص ورچوئل فنکشن ڈرا() ہوتا ہے، جسے اخذ شدہ کلاسز کے ذریعے لاگو کیا جاتا ہے۔ شیپ کلاس میں ایک جامد فنکشن createShape(int type) بھی ہوتا ہے، جو مخصوص قسم کی بنیاد پر اخذ شدہ کلاسز کی مثالیں بنانے کے لیے ایک فیکٹری طریقہ کے طور پر کام کرتا ہے۔ ڈرا () فنکشن تخلیق شدہ اشیاء پر ان کے مخصوص رویے کو ظاہر کرنے کے لیے بلایا جاتا ہے۔

  ایک تصویر جس میں متن، فونٹ، اسکرین شاٹ تفصیل خود بخود تیار ہو جاتی ہے۔

نتیجہ

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