IOC控制反转

接口 可以提供不同的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:

 AInterface a = new AInterfaceImp(); 这样一来,耦合关系就产生了,如:

Class A {
         AInterface a; 
         void aMethod() { a = new AInterfaceImp(); }
}

 


ClassA与AInterfaceImp就是依赖关系,如果想使用AInterface的另外一个实现就需要更改代码了。当然我们可以建立一个Factory来根据条件生成想要的AInterface的具体实现,即:

 

InterfaceImplFactory {
    AInterface create(Object condition) {   
      1、 if(condition == condA) { return new AInterfaceImpA(); }   
      2 、else if(condition == condB) {return new AInterfaceImpB(); } 
      3 、else { return new AInterfaceImp(); }
    }
}

 

表面上是在一定程度上缓解了以上问题,但实质上这种代码耦合并没有改变。

 

IoC模式耦合 从代码中移出,放到 XML 文件中,通过一个 容器 在需要的时候把 依赖关系 形成,即把需要的 接口实现 注入到需要它的类中,这可能就是“依赖注入”说法的来源了。

 

 IOC模式,可由 IOC容器 来 管理 对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分开。其中一个特点就是通过文本的配件文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。

 

可以把IoC模式看做是工厂模式的升华:


1、可以把IoC看作是一个大工厂,在XML文件中定义要生成的对象,利用Java 的“反射”编程,根据XML中给出的类名生成相应的对象,提高灵活性和可维护性


2、反射就是根据给出的类名(字符串)来生成对象。让对象在生成时,才决定要生成哪一种对象。反射方式生成对象 比 通常对象生成方式速度慢 一陪

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值