什么是IOC,什么时候用IOC ?
发布网友
发布时间:2022-04-21 01:07
我来回答
共3个回答
热心网友
时间:2023-10-08 17:40
控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非面向对象编程的专用术语
IoC可以认为是一种全新的设计模式,但是理论和时间成熟相对较晚,并没有包含在GoF中。
Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:AInterface a = new AInterfaceImp(); 这样一来,耦合关系就产生了,如:
1234567891011
classA{ AInterface a; A(){} AMethod()//一个方法 { a = new AInterfaceImp(); }}
Class A与AInterfaceImp就是依赖关系,如果想使用AInterface的另外一个实现就需要更改代码了。当然我们可以建立一个Factory来根据条件生成想要的AInterface的具体实现,即:
123456789101112131415161718
InterfaceImplFactory{ AInterface create(Object condition) { if(condition == condA) { return new AInterfaceImpA(); } else if(condition == condB) { return new AInterfaceImpB(); } else { return new AInterfaceImp(); } }}
表面上是在一定程度上缓解了以上问题,但实质上这种代码耦合并没有改变。通过IoC模式可以彻底解决这种耦合,它把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。
IoC模式,系统中通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分开。其中一个特点就是通过文本的配置文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。
当前比较知名的IoC容器有:Pico Container、Avalon 、Spring、JBoss、HiveMind、EJB等。
在上面的几个IoC容器中,轻量级的有Pico Container、Avalon、Spring、HiveMind等,超重量级的有EJB,而半轻半重的有容器有JBoss,Jdon等。
可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的,然后利用Java 的“反射”编程,根据XML中给出的类名生成相应的对象。从实现来看,IoC是把以前在工厂方法里写死的对象生成代码,改变为由XML文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。
IoC中最基本的Java技术就是“反射”编程。反射又是一个生涩的名词,通俗的说反射就是根据给出的类名(字符串)来生成对象。这种编程方式可以让对象在生成时才决定要生成哪一种对象。反射的应用是很广泛的,像Hibernate、Spring中都是用“反射”做为最基本的技术手段。
在过去,反射编程方式相对于正常的对象生成方式要慢10几倍,这也许也是当时为什么反射技术没有普遍应用开来的原因。但经SUN改良优化后,反射方式生成对象和通常对象生成方式,速度已经相差不大了(但依然有一倍以上的差距)。
热心网友
时间:2023-10-08 17:40
ioc spring控制反转...首先为什么要用ioc,以前做项目老是创建对象,而且多个对象之间耦合对很高,维护的时候要修改某个对象,却级联的要修改其他对象.. ioc 把对象的生命周期交给spring管理,使用配置文件映射的方式生成对象..利于维护,减少耦合。 缺点:由于是映射生成对象,速度比一般要慢大概2倍. 所以使不使用是应项目而异...
热心网友
时间:2023-10-08 17:41
控制反转,意思就是将实体类的对象生成方式在配置文件中完成
在spring框架中,它贯穿与整个系统,对象的生成都在配置文件中
呵呵
时刻都要用到
什么是IOC,IOC的优缺点及IOC的应用
IOC,即控制反转(Inversion of Control,英文缩写为IoC),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。IOC的优点:实现组件之间的解耦,提高程序的灵活性和...
什么是“IOC”?IOC的优缺点及IOC的应用有什么?
IOC,即控制反转(Inversion of Control),是一种设计原则,它将控制权从代码本身转移到外部,通过外部方式来组装和控制对象的行为。IOC的优点主要表现在以下几个方面:1. 降低代码耦合度:通过IOC,对象之间的依赖关系由外部容器来管理,使得代码之间的耦合度大大降低,便于维护和扩展。2. 提高代码复用性...
什么是IOC,什么时候用IOC ?
IoC可以认为是一种全新的设计模式,但是理论和时间成熟相对较晚,并没有包含在GoF中。Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:AInterface a = new AInterfaceImp(); 这样一来,...
ioc是什么
IOC是控制反转的缩写,是面向对象编程中的一种设计原则。在软件开发中,IOC是一个核心概念,尤其在依赖注入技术中广泛应用。其主要目的是降低代码间的耦合度,实现对象的创建和依赖规范的实用性分离。通过这种方式,可以更加灵活地管理组件间的依赖关系,提高软件系统的可维护性和可扩展性。IOC的解释 1. ...
ioc是什么意思的缩写
IOC是多种义项的缩写,包括:控制反转、国际奥林匹克委员会、初始作战能力、政府间海洋学委员会、IBM智慧城市智能运行中心。1、控制反转(Inversion of Control,缩写为IoC)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)...
什么是“IOC”?IOC的优缺点及IOC的应用有什么?
IOC,即控制反转,具体介绍如下。1、定义:控制反转(Inversion of Control,英文缩写为IoC)把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语。它包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。2、IOC最大的好处是:因为把对象生成放在了XML里定义,...
ioc是什么意思 解析ioc概念与应用?
IoC是英文Inversion of Control的缩写,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。IoC的优点包括:- 降低了代码之间的耦合度,提高了代码的可维护性和可扩展性;- 使得代码更加灵活,更容易适应需求的...
ioc是什么意思
IOC即控制反转,是一种软件设计原则,主要应用于面向对象编程中。在传统的程序设计中,程序流程通常由开发者自己控制,而在控制反转的思想中,这种控制权被转移到了外部,或者说是被"反转"了。这样做的目的是降低系统各部分之间的耦合度,提高系统的可测试性和模块化。二、IOC的核心思想 IOC的核心思想是...
ioc是什么意思-含义须知
控制反转(InversionofControl,缩写为IoC)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(DependencyInjection,简称DI),还有一种方式叫“依赖查找”(DependencyLookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所...
“IOC”代表什么?
当我们遇到英文缩写词"IOC"时,它通常代表"Infrastructure Operating Center",中文直译为"基础设施运营中心"。这个术语在计算机和网络安全领域中具有一定的流行度,据统计为2121。IOC主要应用于管理和监控基础设施的运行状态,确保其高效、稳定地为各类网络服务提供支持。简单来说,IOC是这样一个概念:它是一...