wrapper در برنامه نویسی چیست؟

wrapper

در یک زمینه نرم افزاری، اصطلاح wrapper به برنامه ها یا کدهایی گفته می شود که دربرگیرنده سایر اجزای برنامه هستند.wrapper چندین عملکرد مختلف دارد. اغلب از آن برای اطمینان از سازگاری یا قابلیت همکاری بین ساختارهای مختلف نرم افزار استفاده می شود. همچنین می توان از آن در HTML یا CSS استفاده کرد. Wrapper ها همان اجزای نرم افزاری منفرد، محصولات نرم افزاری مستقل، معماری نرم افزار، کلاس های برنامه نویسی شی گرا یا چارچوب ها هستند.

اگر می خواهید از توابع یا بلوک های کد زبان برنامه نویسی دیگری در داخل یک برنامه استفاده کنید، می توانید آنها را با استفاده از یکWrapper کپسوله سازی کنید. برنامه اصلی منحصرا باWrapper ، که دستورات را به برنامه Wrap شده ارسال می کند و نتایج را برمی گرداند ارتباط برقرار می کند. خود wrapper تنها جزئی است که مستقیماً با هر دو قسمت برنامه ارتباط برقرار می کند.

از wrapper ها می توان به طرق مختلف در برنامه نویسی و توسعه نرم افزار استفاده کرد. مثالهای زیر نحوه کارکردنwrapper ها و وظایف مختلفی که انجام می دهند را نشان می دهد.

wrapper ها به عنوان مترجم ورودی کاربر

فرم های موجود در برنامه ها یا اپلیکیشن های وب انتظار ورودی را دارند که برنامه می تواند پردازش کند. برنامه های توسعه یافته در بسیاری از کشورهای اروپایی انتظار دارند که اعداد به جای علامت اعشاری، با کاما و ابعاد بر حسب متر و سانتی متر وارد شوند. وقتی ورودی کاربر با ورودی های پیش فرض تطبیق نداشته باشند باید انتظار نتایج نادرست یا حتی خطا را داشته باشیم.

یک wrapper می تواند این مشکل را حل کند. فرم ورودی، ورودی را به جای اینکه مستقیماً به برنامه خارجی وارد کند به داخل wrapper هدایت می کند. wrapper ورودی ها را تجزیه و تحلیل کرده و آنها را به ورودی های معتبر برای برنامه خارجی – بدون نیاز به تغییر برنامه- ترجمه یا برگردان می کند.

wrapper ها برای دسترسی به پایگاه داده

از پایگاه داده وندرهای مختلف نمی توان با هم استفاده کرد زیرا جداول داده ها، پس و جو ها یا زبان های پرس و جوی آنها با یکدیگر سازگار نیستند. در اینجا نیز یک wrapper می تواند راه حل باشد. wrapper، ناسازگاری بین رابط های نرم افزاری مختلف را شناسایی کرده شکاف بین آنها را پر می کند.

(JDBC) Java Database Connectivity، رابط پایگاه دادهOracle و یک نمونه معمولی از یک wrapper است. رپر JDBC به پایگاه های داده مختلف دسترسی پیدا کرده و با استفاده از درایورهای ویژه پایگاه های داده مختلف را به هم متصل می کند. پرس و جوهای SQL منحصراً به JDBC هدایت می شوند، نه به پایگاه های داده. JDBC با برگرداندن نتایج سازگار با جاوا، پرس و جوها را به زبان پر و جوی پایگاه داده تبدیل می کند. بر این اساس، برنامه درخواست کننده، صرف نظر از پایگاه داده مورد استفاده، داده ها را در یک فرم یکنواخت دریافت می کند.

کلاس رپر در جاوا

wrapper ها در برنامه نویسی شی گرا

برنامه نویسی شی گرا از الگوهای ساختاری مختلفی استفاده می کند که اساسا بدون توجه به زبان برنامه نویسی مورد استفاده، همیشه به یک شکل کار می کنند. الگوهای طراحی آداپتور و دکوراتور الگوهای ساختاری هستند که به آنها wrapper نیز گفته می شود.

یک آداپتور، رابط های ناسازگار بین کلاس های جداگانه را پنهان می کند. یک آداپتور با ترجمه یک رابط به رابط دیگر، به کلاسها اجازه می دهد تا با یکدیگر ارتباط برقرار کنند. این امر به ویژه زمانیکه بخواهید از کلاسها یا کل کتابخانه های کلاس در پروژه های جدید استفاده کنید بسیار مهم است. این کتابخانه ها از رابط های استاندارد و منحصر به فردی استفاده می کنند که ممکن است تغییر نکنند زیرا باید برای تعداد زیادی از برنامه ها قابل استفاده باشند. wrapper – در این مورد آداپتور – حلقه مهم ارتباطات است.

یک دکوراتور امکان اضافه کردن توابع به یک کلاس را بدون تغییر خود کلاس فراهم می کند. دکوراتور به عنوان wrapper ، فراخوان ها را به کلاس منتقل می کند. دکوراتور مستقیماً توابع جدیدی را که در کلاس گنجانده نشده اند اداره می کند و نتایج را به گونه ای برمی گرداند که برای شی فراخوانده شده مانند نتایج کلاس decorated به نظر برسند.

wrapper ها برای طراحی اسناد HTML

از wrapper ها اغلب برای (طراحی مجدد) وب سایت ها در HTML و CSS استفاده می شود. بدون wrapper، پس از انجام تنظیمات جداگانه مانند تغییر در حاشیه صفحه پنجره مرورگر، باید چندین stylesheet را تغییر دهید و مطمئن شوید که تغییرات در کنار هم قرار می گیرند.

روش ساده تر، استفاده ازDIV به عنوان wrapper است.DIV بعنوان یک ظرف عمل می کند و کل محتوای صفحه را در خود جای می دهد.

wrapper های TCP در سیستم های لینوکس

tcp-wrapper

سرویس پس زمینه inetd در لینوکس و سایر سیستم عامل های مبتنی بر UNIX به عنوان رپرTCP اجرا می شود. Inetd به سوکت های شبکه گوش می دهد و درخواست های اتصال را می پذیرد. یک فایل پیکربندی مشخص می کند به کدام درگاه ها گوش داده شود. درخواست ها ارزیابی شده و سرویس inetd مشخص شده شروع به کار می کند. در بیشتر موارد، این برنامه ها دیمن هایی هستند که در پس زمینه اجرا می شوند.

اگر اتصال قطع شود،inetd به طور خودکار سرویس را متوقف می کند. شروع خدمات در صورت وجود تقاضا در مقایسه با شروع خودکار سرویس های شبکه بار قابل توجهی از منابع سیستم را کاهش می دهد که ممکن است اصلاً نیازی به آن نباشد. inetd به عنوان رپری عمل می کند که درخواست های شبکه را از همه برنامه ها بدون ارتباط مستقیم با سرویس های جداگانه دریافت می ک

همچنین می توان از رپرهای TCP برای جلوگیری از دسترسی ناخواسته از یک شبکه استفاده کرد. رپر TCP توسط inetd یا نرم افزار سرور مورد جستجو قرار می گیرد. میزبان ها و رایانه های مجاز و رد شده در فایل ها /etc/hosts.allow و /etc/hosts.deny وارد می شوند.

آخرین نوشته ها

تماس با ما

 کرج، شاهین ویلا، بلوار امام خمینی ، خیابان نهم شرقی ، برج شاهین ،طبقه اول واحد2

 91014618

  info@shopingserver.net

با تلفن ثابت بدون پیش شماره قابل شماره گیری هست و در صورتی که با تلفن همراه قصد تماس گرفتن دارید از پیش شماره استان خود را اول شماره وارد نمایید.

Erfan Akbarieh

Erfan Akbarieh

مطالب مرتبط