现在的位置: 首页 > 综合 > 正文

侵入式和非侵入式的区别

2013年08月25日 ⁄ 综合 ⁄ 共 696字 ⁄ 字号 评论关闭
摘自《Spring框架技术》
Spring框架是一种非侵入式的轻量级框架
1.非侵入式的技术体现
允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口。
2.如何实现非侵入式的设计目标的
 1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory
 2)配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入
 3)优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码
 
下为转载:
简单说一下我的理解吧。假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。
例如:
使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。
使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里。

侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。
非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。

这两种方式都有各自的优缺点吧,主要看实际开发时怎么权衡了。

抱歉!评论已关闭.