轻量级框架和重量级框架的区别

轻量级框架和重量级框架的区分并没有一个明确的定义,它是个相对概念,通常我们会依据启动资源多少、开发程度难易等进行区分。

一、从启动程序耗费资源来看,EJB(java bean),因为默认提供了EJB规范中所用的功能,所以EJB往往是买一送三,不要也不行,EJB启动会耗费大量资源,内存、CPU等,所有服务都会加载进来。Spring提供了很多服务,但是这些服务默认是不打开的,当我们需要某个服务的时候,只打开某个服务就可以了,定制服务,需要什么加载什么。(当然不是说只要你用了Spring那就一定是轻量级,如果应用中使用了Spring的大量服务,这时他也应该是重量级的)
二、从侵入性的角度来看,轻量级框架不一定需要继承和实现框架的接口和抽象类来实例化组件,重量级框架需要继承和实现框架的类或者实现框架的接口,以便使用框架中间件特性。这就可能需要实例化大量的类并注册到应用中,即使他们是没用的。从这个角度看,重量级框架侵入性更高。
侵入性:也称为框架依赖性、耦合性,从软件工程的角度解释,软件工程的设计标准是“高内聚,低耦合”,侵入性是指耦合性太强。有个比较通俗的解释就是复用性,代码的复用性越高,侵入性就越低,反之同理。
举个例子:A是侵入性的,B中使用了A,那么如果后面A要换成C,就需要修改B;
A是非侵入性的,B中使用A,后面把A换成C,只要修改配置文件就好了。

三、轻量级框架一般是一组独立的特性实现集,重量级框架往往依赖某些或其他类型的容器支持框架特性。

四、从开发难易程度来看,轻量级框架在开发中应用简单方便,重量级框架开发时需要写一些框架绑定的类,部署、运行、测试及维护都较为复杂,开发较为困难。

五、从解决问题的侧重点看,轻量级框架侧重减小开发的复杂度,但他处理能力较弱(处理事务能力弱,不具备分布式处理能力),比较适用于开发中小型企业应用,重量级开发适用于开发大型企业应用。

你可能感兴趣的:(基础知识点,软件工程)