1.تفاوت کلیدی و تعریف کتابخانه و چارچوب
تفاوت کلیدی بین یک کتابخانه و یک چارچوب در “وارونگی کنترل” است. زمانی شما یک متد را از یک کتابخانه فرامیخوانید شما آن را کنترل میکنید. درحالی که با یک چارچوب کنترل وارونه است. این چارچوب است که شما را فراخوانی می کند.
یک کتابخانه فقط مجموعه ای از کلاس ها یا توابع تعریف شده است. دلیل آن هم ساده است استفاده مجدد از کد و یا استفاده از کد های دیگر توسعه دهندگان، که نوشته اند. کلاس ها و توابع معمولا یک سری عملیات مشخص را در حیطه ی خاص دامنه ما، تعریف می کنند.
برای مثال برخی کتابخانه برای ریاضیات وجود دارد که به توسعه دهنده تنها اجازه ی فراخوانی یک فانکشن را می دهند بدون اینکه بتوان چگونه کار کردن یک الگوریتم را مجددا مورد بررسی قرار داد.
در چارچوب تمام روند کنترل همانجاست و جاهای خالی زیادی بصورت پیش تعریف شده وجود دارد که شما باید با کدهایتان آنها را تکمیل کنید.
یک چارچوب معمولا پیچیده تر است. چارچوب یک اسکلت تعریف میکند که یک اپلیکیشن ویژگی های خودش را روی آن اسکلت قرار دهد و آن را بپوشاند.
از همین رو، کد های شما در زمان مناست توسط چارچوب فراخوانی می شوند. سود آن در این است که توسعه دهندگان نیازی نیست نگران این مسئله باشند که طراحی خوب است یا نه بلکه فقط باید توابع مختص دامنه موردنظر را پیاده سازی کنند.
2.ارتباط آنها باهم
هر دوی آنها API تعریف می کنند تا برنامه نویسان بتوانند از آنها استفاده کنند. برای اینکه این سه را کنار هم قرار دهیم می توانیم اینطور فکر کنیم که
- یک کتابخانه را بعنوان یک تابع معین و قطعی برای یک اپلیکیشن
- یک چارچوب را بعنوان یک اسکلت از یک اپلیکیشن
- و یک API را بعنوان اتصال دهنده آن دو بهم
هستند.
یک فرایند توسعه معمول بطور کلی با یک چارچوب آغاز می شود و توسط توابعی که که در کتابخانه ها تعریف شده اند از طریق API ، تکمیل می شوند.
منبع :programcreek