تابع لفافپیچی (به انگلیسی: wrapper function) نوعی زیرروال (یا تابع) است که در یک کتابخانه نرمافزاری یا یک برنامه رایانهای قرار دارد، و هدف اصلی آن «تماسگرفتن به یک زیرروال ثانویه»[۱] یا یک «تماسگیری با سامانه» است، این تابع، محاسبات اضافی ندارد یا مقدار آن کم است. از توابع لفافپیچی برای سادهسازی نوشتن برنامههای رایانهای استفاده میشود، این کار از طریق انتزاعیسازی جزئیات پیادهسازی زیربنایی یک زیرروال انجام میشود.
توابع لفافپیچی، روشی برای واگذاری هستند و برای چند هدف میتوان از آن استفاده کرد:
از توابع لفافپیچی برای سادهسازی نوشتن برنامههای رایانهای میتوان استفاده کرد. یک مثال از آن MouseAdapter
است مثال دیگر کلاسهای مشابه در کتابخانه Java AWT است.[۲]
توابع لفافپیجی را میتوان برای سازگارسازی یک کلاس یا شیء موجود برای داشتن واسط جداگانه، استفاده کرد. این موضوع مخصوصاً موقعی مفید است که از کد کتابخانه موجود استفاده میشود.
از توابع لفافپیچی میتوان برای نوشتن روالهای بررسی خطا برای توابع سامانه ای از پیش موجود استفاده کرد، در اینجا اهمیت این نوع توابع، افزایش نیافتن طول کد به مقدار بسیار زیاد است، یعنی بررسی خطای مشابه، برای هر تماس به تابع، تکرار میشود.[۳]
در زبانهای برنامهنویسی که از وراثت چندگانه کلاسهای مبنا پشتیبانی نمیکنند، از توابع لفافپیچی برای شبیهسازی آن میتوان استفاده کرد. در زیر یک مثال از بخشی از یک کلاس جاوا آمدهاست که هم از LinkedList و هم از HashSet ارثبری میکند. شگرد را برای جزئیات پیادهسازی بیشتر ببینید.
public class Test implements LinkedList, HashSet{
@Override
//contains data members and data methods
//covariant return
}