سوال بعدی :
تنها یک بار هسته اصلی برنامه خود را بنویسید و سپس بخش رابط گرافیکی را متناس به محیطی که باید در آن اجرا شود انتخاب کنید.
مثلاً یک برنامه حسابداری میتواند یک هسته اصلی داشته باشد که رابط MFC برای ویندوز ، رابط +GTK برای گنوم روی لینوکس ، رابط Modern UI برای اجرا روی تبلت های Windows RT و یا حتی رابط HTML5 برای استفاده بر روی وب داشته باشد.
این کار چگونه امکان پذیر هست ؟ ممنون می شوم کمی این قسمت رو بازتر کنید یا اگر امکان دارد لینکی برای مطالعه بیشتر ارائه دهید .
اساسی ترین موضوع این است که هسته اصلی برنامه شما مستقل از رابط کاربری نوشته شود. سپس یک بخش واسطه برای کار با رابط کابری بنویسید که بتواند به رابط های کاربری مختلف متصل شود.
به طور مثال فرض کنید هسته اصلی برنامه نیاز دارد تا یک عدد را از کاربر دریافت کند. هسته اصلی تابع GetXNumber را از بخش واسطه فراخوانی می کند. حال بخش واسطه متناسب با رابطی که با آن در ارتباط است تابع مناسب را صدا می زند. مثلا می تواند محتویات یک TextBox را از MFC یا Qt بخواهد. می تواند مقدار یک فیلد را از یک صفحه HTML بخواند ، دستور cin را برای دریافت عدد از ترمینال اجرا کند و یا حتی یک دستور RPC برای یک کامپیوتر دیگر در شبکه ارسال کند و عدد را از آنجا دریافت کند. به این ترتیب می بینید هسته اصلی برنامه با هر رابطی که کار کند برایش تفاوتی ندارد.
اما برای پیاده سازی چنین کدی می توان در ساده ترین حالت کد هسته را کپی کرد و با رابط های مختلف، نرم افزار های متناسب برای پلتفرم های متفاوت ایجاد کرد. می توان تنها یک نسخه از برنامه برای پلتفرمهای مختلف ایجاد کرد اما با استفاده از دستورات Preprocessor در هنگام کامپایل تنها رابط مناسب را کامپایل کرد. و به شکل حرفه ای تر می توان با استفاده از ابزارهایی چون Make ، هنگام کامپایل برنامه تنها بخش های مناسب پلتفرم هدف را کامپایل نمود.