آشنایی با Framework های جاوا

در این مقاله با مفهوم framework و کاربرد آن در java و ویژگی های آن آشنا میشویم.به طور کلی ،Framework می تواند به عنوان یک ساختار واقعی یا مفهومی تعریف شود که برای راهنمایی برنامه نویسان جهت توسعه و ساخت برنامه های مفید و پرکاربرد بر روی سرورها تعبیه شده است.فریم ورک چیست؟به طور کلی ،Framework می تواند به عنوان یک ساختار واقعی یا مفهومی تعریف شود که برای راهنمایی برنامه نویسان جهت توسعه و ساخت برنامه های مفید و پرکاربرد بر روی سرورها تعبیه شده است.در دنیای سیستم های کامپیوتری، یک فریم ورک می تواند به عنوان یک ساختار لایه ای در نظر گرفته شود که به کاربر توصیه می کند چه نوع برنامه ای باید ساخته شود و برنامه ی ساخته شده چگونه باید با سایر برنامه ها هماهنگ شود تا در نهایت یک جزء هماهنگ و مفید داشته باشیم. برخی اوقات فریم ورک ها می توانند شامل برنامه های واقعی نیز باشند، که رابط کاربری ها را مشخص کنند و یا ابزارهای برنامه نویسی را برای استفاده از فریم ورک ها فراهم بیاورند.اگر بخواهیم دقیق تر به این موضوع بپردازیم، یک فریم ورک نرم افزاری، یک برنامه عظیم از پیش نوشته شده است که می تواند برای حل مشکلی که در یک ناحیه خاص وجود دارد، به کار گرفته شود. در حقیقت، فریم ورک از کد ما استفاده می کند زیرا معمولا فریم ورک تحت کنترل ما و کدهای ما قرار دارد. ما می توانیم از یک فریم ورک با فراخوانی "متد"، "ارث بری " و یا ایجاد"callback" استفاده کنیم.یک فریم ورک ، مجموعه ای از کتابخانه های نرم افزاری و یا کامپوننت ها است که یک برنامه رابط کاربری مشخص را برای ما فراهم می کنند.یک فریم ورک برخی ویژگی های کلیدی دارد که آن را از کتابخانه ها متمایز می کند. این ویژگی های کلیدی عبارتند از :Inverted flow of control (جریان کنترلی وارونه):یک فریم ورک یک جریان کنترلی وارونه بین خودش و کاربر ایجاد می کند. زمانی که از یک فریم ورک استفاده می کنیم، ما معمولا فقط توابع فراخوانی بازگشتی محدود و یا کلاس های محدودی ایجاد می کنیم و سپس یک متد و یا procedure را به کار می گیریم. در این نقطه، فریم ورک سایر امور را برای ما انجام می دهد، و هر فراخوانی و یا متد دیگری که مورد نیاز باشد را در برنامه در زمان و مکان مناسب وارد می کند که همین موضوع ، رمز پایداری و تداوم فریم ورک ها در گذر زمان است.Extensibility (قابلیت توسعه):یک فریم ورک می تواند به وسیله کاربر و کدهای برنامه که توابع خاصی را تولید می کنند، گسترش پیدا کند.Non-modifiable (عدم ویرایش پذیری ):اصولا کدهای مربوط به یک فریم ورک نمی توانند ویرایش شوند. کاربران تنها می توانند فریم ورک را توسعه بدهند ولی نمی توانند آن را ویرایش کنند.فریم ورک ها با توجه به مساله ای که در آن به کار گرفته می شوند، انواع مختلفی دارند. این انواع شامل کامپوننت ، توسعه، سرویس ها، دامنه ها ، مفاهیم ، برنامه ها ، پلتفرم و غیره می شوند. اگر بخواهیم نگاه دقیق تری به این مبحث داشته باشیم، می توانیم از جدول زیر استفاده کنیم:?کاربرد فریم ورک هایک فریم ورک، در ساخت برنامه های پیچیده بسیار مفید و کاربردی است زیرا اغلب معمولا فریم ورک ، ساختار برنامه را شکل می دهد. برخی از فریم ورک ها حتی از کدهای بیشتری پشتیبانی می کنند و به این ترتیب شما می توانید میزان کدنویسی خودتان را کاهش بدهید. این موضوع می تواند با توجه به میزان دشوار بودن پیاده سازی فریم ورک ها در محیط های مختلف برنامه نویسی، خوب و یا بد باشد.فریم ورک ها در جاوادر تکنولوژی جاوا، تعداد زیادی از فریم ورک ها وجود دارند که برنامه نویسان و توسعه دهندگان می توانند از آن ها برای ساخت برنامه های پیچیده استفاده کنند. فریم ورک های موجود در جاوا عبارتند از : ‘Hibernate’, ‘Spring’, ‘Struts’ و غیره...مثالدر جاوا، یک مثال بسیار متداول از فریم ورک ها ، GUI framework ها مانند کلاس های AWT و Java Swing هستند. زیرا آن ها حجم بالایی از کد برای مدیریت رابط های کاربری دارند، و از یک جریان وارونه کنترلی پیروی می کنند، جریان وارونه کنترلی به این دلیل اتفاق می افتند که ما ابتدا یک فریم ورک GUI را راه اندازی کردیم و سپس منتظر ماندیم تا پردازش های بعدی ، به وسیله های فراخوانی های کاربر انجام شود.برخی اوقات کلاس های Collections هم می توانند به عنوان یک framework در نظر گرفته شوند، زیرا آن ها از لحاظ سایز و پیچیدگی در سطح بالایی قرار دارند. اما آن ها در اکثر مواقع به عنوان یک کتابخانه در نظر گرفته می شوند زیرا هیچ جریان کنترلی وارونه ای در آن ها وجود ندارد. در داخل این کتابخانه ها روند برنامه به صورت فراخوانی ساده متدها در نوبت های از پیش تعیین شده انجام می شود و یا از extended class ها برای ترتیب اجرای متدها استفاده می شود. بعد از اجرا نیز پاسخ ها دریافت می شوند.این مقاله فقط جنبه ی معرفی framework ها را دارد. امیدواریم از خواندن آن لذت برده باشید.