本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

关注电子政务、大型企业应用开发、Web、Workflow、MOM、MDA、RCP、GEF

email:gmluyang@gmail.com


链接

好友
bluedavy-林昊
刑红瑞
SixSun-翻译
Birt中文指南
SixSun-OpenDoc
Eclipse RCP and Web in action(编写中)

我的分类(专题)

日志更新

最新评论

留言板


Blog信息
blog名称:SixSun的Blog
日志总数:152
评论数量:372
留言数量:13
访问次数:2376793
建立时间:2004年12月13日




[Spring]Spring-IoC
随笔,  读书笔记

SixSun 发表于 2006/4/11 0:02:03

Spring 的核心概念是 IoC,IoC 的抽象概念是「依赖关系的转移」                 Spring 所采用的是Dependency Injection 来实现 IoC,中文翻译为依赖注入,依赖注入的意义是:保留抽象接口,让组件依赖于抽象接口,当组件要与其它实际的对象发生依赖关系时,通过抽象接口来注入依赖的实际对象。        设计原则: 高层模块不应该依赖低层模块,而是模块都必须依赖于抽象;在模块设计时,高层的抽象模块通常是与业务相关的模块,它应该具有重用性,而不依赖于低层的实现模块,如果高层模块直接调用低层模块,则就对低层模块产生了依赖关系。低层模块的更动造成了高层模块也必须跟着更动,这不是一个好的设计方式,在设计上希望模块都依赖于模块的抽象,这样才可以重用高层的业务设计。 实现必须依赖抽象,而不是抽象依赖实现;如果以面对对象的方式来设计,依赖反转(Dependency Inversion)的解释变为程序不应依赖具体实现,而是依赖于抽象,实现必须依赖于抽象。(有点拗口500)this.width=500'>)Dependency Inversion 的意思即是程序不依赖于实作,而是程序与实现都要依赖于抽象。 IoC 的 Control 是控制的意思,其实其背后的意义也是一种依赖关系的转移,如果A依赖于B,其意义即是B拥有控制权,您想要转移这种关系,所以依赖关系的反转即是控制关系的反转,藉由控制关系的转移,可以获得组件的可重用性。程序的业务逻辑部份应是可以重用的,不应受到所使用框架或容器的影响,因为可能转移整个业务逻辑至其它的框架或容器,如果业务逻辑过于依赖容器,则转移至其它的框架或容器时,就会发生困难。 应用程序不应依赖于容器,而是容器服务于应用程序; 不要向容器要求您所需要的(对象)资源,容器会自动将这些对象给您!」。IoC 要求的是容器不侵入应用程序本身,应用程序本身提供好接口,容器可以透过这些接口将所需的资源注至至程序中,应用程序不向容器主动要求资源,故而不会依赖于容器的组件,应用程序本身不会意识到正被容器使用,可以随时从容器中脱离转移而不用作任何的修改,而这个特性正是一些业务逻辑中间件最需要的。  


阅读全文(3643) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.043 second(s), page refreshed 144764933 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号