不管是iOS开发还是前端、Java、Android开发中,我们经常需要用到第三方库,而在搜索第三方库的介绍和使用文档时,经常会看到轻量级、重量级等字眼,那么轻量级框架和重量级框架是怎么区分的呢?
判定一个第三方框架是轻量级还是重量级是从多个方面去衡量的,但是最主要的衡量指标是以启动程序需要的资源来决定。比如,EJB启动的时候,需要消耗大量的资源,内存,CPU等,所以是重量级。而Spring则不,所以是轻量级框架。
此外,主要区别之二是框架的侵入性程度,轻量级的侵入性程度较低:
- 轻量级框架不一定需要继承和实现框架的接口和抽象类来注册和实例化组件。
- 重量级框架需要继承和实现框架的类或者实现框架的接口,以方便使用框架中间件特性。这就意味着,需要实例化大量的类并且注册到应用中去,虽然可能用不到。
主要区别之三是轻量级框架一般是一组独立的特性实现集,而重量级框架往往依赖于某些或其他类型的容器支持框架的特性。
主要区别之四是开发的方便程度:
- 轻量级框架在开发中应用非常简单方便
- 重量级框架开发时则要写一些框架绑定的类,部署、运行及测试过程都较为复杂,开发起来并不方便。
主要区别之五是解决问题的侧重点不同:
- 轻量级框架侧重于减小开发的复杂度,相应它的处理能力较弱(事务功能弱,不具备分布式处理能力),适用于开发中小型企业应用。
- 重量级框架则强调高可伸缩性,适合于开发大型企业应用。
总结一下,轻量级框架的特点:一般是非侵入性的、依赖的东西非常少,占用资源非常少,部署简单,比较容易使用。