加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

IOC是将对象内部的依赖解藕 将原先内部的控制反转给了类之外 又称Dependence Injection

发布时间:2020-05-24 12:02:34 所属栏目:程序设计 来源:互联网
导读:IOC是将对象内部的依赖解藕将原先内部的控制反转给了类之外又称DependenceInjection IoC的几种实现类型 (1)Type1接口注入 通常做法是利用接口将调用者与实现者分离。 publicclassSport{ privateInterfaceBallball;//InterfaceBall是定义的接口 publicvoidinit

IOC是将对象内部的依赖解藕将原先内部的控制反转给了类之外又称DependenceInjection IoC的几种实现类型 (1)Type1接口注入 通常做法是利用接口将调用者与实现者分离。 publicclassSport{ privateInterfaceBallball;//InterfaceBall是定义的接口 publicvoidinit(){ //Basketball实现了InterfaceBall接口 ball=(InterfaceBall)Class.forName("Basketball").newInstance(); } } Sport类在编译期依赖于InterfaceBall的实现,为了将调用者与实现者分离,我们动态生成Basketball类并通了强制类型转换为InterfaceBall。ApacheAvalon是一个典型的Type1型IoC容器。 (2)setter方法注入 在类中暴露setter方法来实现依赖关系。 publicclassSport{ privateInterfaceBallball; publicvoidsetBall(InterfaceBallarg){ ball=arg; } } 这种方式对已经习惯了JavaBean的程序员而言,更显直观。Spring就是实现了该类型的轻量级容器。 (3)Type3构造子注入 即通过构造方法完成依赖关系。 publicclassSport{ privateInterfaceBallball; publicSport(InterfaceBallarg){ ball=arg; } } 可以看到,通过类的构造方法建立依赖关系。由于Type3在构造期就形成了对象的依赖关系,即存对象的重用变的困难。有些框架需要组件提供一个默认的构造方法,此时就体现了Type3的局限性。通常所有的参数都是通过构造方法注入的,当对象间的依赖关系较多时,构造方法就显的比较复杂,不利于单元测试。PicoContainer就是实现了Type3依赖注入模式的轻量级容器。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读