Wrapper function
ریپر فنکشن سافٹ ویئر لائبریری یا کمپیوٹر پروگرام میں ایک فنکشن (سبروٹین کے لیے دوسرا لفظ) ہے جس کا بنیادی مقصد دوسرے سبروٹین یا سسٹم کال کو بہت کم یا بغیر کسی اضافی حساب کے کال کرنا ہے۔ ریپر فنکشنز کا استعمال سبروٹین کے بنیادی نفاذ کی تفصیلات کو خلاصہ کرکے کمپیوٹر پروگرام لکھنے کو آسان بنانے کے لیے کیا جاتا ہے۔ پرپز ریپر فنکشنز ڈیلیگیشن کا ایک ذریعہ ہیں اور کئی مقاصد کے لیے استعمال کیے جا سکتے ہیں۔ پروگرامنگ کی سہولت ریپر افعال کو کمپیوٹر پروگرام لکھنے کو آسان بنانے کے لیے استعمال کیا جا سکتا ہے۔ اس کی ایک مثال جاوا اے ڈبلیو ٹی لائبریری میں ماؤس اڈاپٹر اور اسی طرح کی کلاسیں ہیں۔ ریپر فنکشنز ان ایپلی کیشنز کی ترقی میں مفید ہیں جو تھرڈ پارٹی لائبریری فنکشنز استعمال کرتی ہیں۔ ایک ریپر تھرڈ پارٹی فنکشن میں سے ہر ایک کے لیے لکھا جا سکتا ہے اور مقامی ایپلی کیشن میں استعمال کیا جا سکتا ہے۔ اگر تھرڈ پارٹی فنکشنز تبدیل ہوتے ہیں یا اپ ڈیٹ ہوتے ہیں، تو صرف مقامی ایپلی کیشن میں ریپرز میں ترمیم کرنے کی ضرورت ہے بجائے اس کے کہ مقامی ایپلی کیشن میں تھرڈ پارٹی فنکشنز کی تمام مثالوں کو تبدیل کیا جائے۔ کلاس/آبجیکٹ انٹرفیس کو اپنانے کے لیے ریپر فنکشن کا استعمال موجودہ کلاس یا آبجیکٹ کو مختلف انٹرفیس کے لیے ڈھالنے کے لیے کیا جا سکتا ہے۔ موجودہ لائبریری کوڈ کا استعمال کرتے وقت یہ خاص طور پر مفید ہے۔ کوڈ ٹیسٹنگ ریپر فنکشنز کو پہلے سے موجود سسٹم فنکشنز کے لیے ایرر چیکنگ کے معمولات لکھنے کے لیے استعمال کیا جا سکتا ہے بغیر کسی کوڈ کی لمبائی میں بڑی مقدار میں اضافہ کیے فنکشن پر ہر کال کے لیے ایک ہی ایرر چیک کو دہرا کر۔ اصل فنکشن پر کی جانے والی تمام کالوں کو ریپر پر کی جانے والی کالوں سے تبدیل کیا جا سکتا ہے، جس سے پروگرامر ریپر لکھنے کے بعد ایرر چیکنگ کے بارے میں بھول سکتا ہے۔ ٹیسٹ ڈرائیور ایک قسم کا ریپر فنکشن ہے جو کوڈ ماڈیول کا استعمال کرتا ہے، عام طور پر اسے بار بار کال کرتا ہے، مختلف ترتیبات یا پیرامیٹرز کے ساتھ، تاکہ ہر ممکنہ راستے کو سختی سے آگے بڑھایا جا سکے۔ یہ ڈیلیور ایبل کوڈ نہیں ہے، لیکن تھرو وے کوڈ بھی نہیں ہے، جسے عام طور پر ریگریشن ٹیسٹنگ میں استعمال کے لیے برقرار رکھا جاتا ہے۔ انٹرفیس اڈاپٹر ایک قسم کا ریپر فنکشن ہے جو انٹرفیس کو صارف کے لیے زیادہ قابل فہم یا متعلقہ بنانے کے ارادے سے کوڈ ماڈیول کو آسان، درزی یا وسعت دیتا ہے۔ یہ پیرامیٹرز کا نام تبدیل کر سکتا ہے، پیرامیٹرز کو یکجا کر سکتا ہے، پیرامیٹرز کے لیے ڈیفالٹ سیٹ کر سکتا ہے، اور اسی طرح۔ ایک سے زیادہ وراثت ایک ایسی پروگرامنگ زبان میں جو بیس کلاسوں کی متعدد وراثت کی حمایت نہیں کرتی ہے، اسے نقل کرنے کے لیے ریپر افعال استعمال کیے جا سکتے ہیں۔ ذیل میں جاوا کلاس کے ایک حصے کی مثال دی گئی ہے جو لنکڈ لسٹ اور ہیش سیٹ سے "وراثت" میں ملتا ہے۔ عمل درآمد کی مزید تفصیلات کے لیے طریقہ کار دیکھیں۔ پبلک کلاس ٹیسٹ لنکڈ لسٹ کو لاگو کرتا ہے، ہیش سیٹ {@Override// میں ڈیٹا ممبران اور ڈیٹا کے طریقے// کوویرینٹ ریٹرن} لائبریری افعال اور سسٹم کالز ہوتے ہیں۔ لائبریری کے بہت سے افعال، جیسے کہ سی اسٹینڈرڈ لائبریری میں، سسٹم کالز کے خلاصہ کے لیے انٹرفیس کے طور پر کام کرتے ہیں۔ Glibc میں فورک اور Execve فنکشن اس کی مثالیں ہیں۔ وہ بالترتیب نچلی سطح کے فورک اور ایگزیکٹو سسٹم کالز کو کال کرتے ہیں۔ اس کی وجہ سے "سسٹم کال" اور "سسکل" کی اصطلاحات کو غلط طریقے سے اعلی درجے کی لائبریری کالز کا حوالہ دینے کے لیے استعمال کیا جا سکتا ہے بجائے اسی طرح کے نامی سسٹم کالز کے، جنہیں وہ لپیٹ دیتے ہیں۔ ہیلپر فنکشن ایک فنکشن ہے جو وضاحتی نام تفویض کرکے اور کمپیوٹیشن کے دوبارہ استعمال کی اجازت دے کر کمپیوٹیشن کے حصوں کو گروپ کرتا ہے۔ اگرچہ تمام ریپرز ہیلپر فنکشنز نہیں ہیں، تمام ہیلپر فنکشنز ریپرز ہیں، اور ہیلپر فنکشنز کا ایک قابل ذکر استعمال-اکثر استعمال ہونے والے آپریشنز کو گروپ کرنا-متحرک بائنری ترجمہ میں ہے، جس میں کسی خاص فن تعمیر کے ہیلپر فنکشنز کو ہدایات کے ترجمہ میں استعمال کیا جاتا ہے۔ یہ بھی دیکھیں کہ ریپر لائبریری ڈرائیور ریپر اڈاپٹر پیٹرن ڈیکوریٹر پیٹرن ڈیلیگیشن (پروگرامنگ) فارورڈنگ (آبجیکٹ پر مبنی پروگرامنگ) زبان بائنڈنگ ریپر دوسری زبان میں ایس ڈبلیو آئی جی آٹومیٹک ریپر جنریٹر نیسٹڈ فنکشن جزوی ایپلی کیشن حوالہ جات مثال کے طور پر جاوا کوڈ سبروٹینز کے ساتھ مضامین