其实,IoC主要分为2步:
1.控制反转-反向控制。以往的开发过程中,都是应用程序去调用系统的接口方法,比如调用系统library,这种做法的特点是,控制权掌握在应用程序手中。而控制反转就是在系统框架中,已经定义好了具体的操作模式,应用只需要实现部分借口就可以,所以这个控制流程掌握在框架手中。
与反向控制相对的是正向控制,如子类调用父类的方法,实现类调用系统库函数等
举例:
android中的框架中ActivityThread等已经定义好了activity的生命周期函数的执行顺序,而应用程序做的就是给这些个生命周期函数进行实现填充,控制权掌握在android手中。
2.依赖注入。实现组件间关系从程序内部提到外部容器来管理。也就是说由容器在运行期将组件间的某种依赖关系动态的注入组件中。控制程序间关系的实现交给了外部容器来完成。
为了更好的理解依赖注入,下面通过例子说明下:
假设有两个类B 和 C:B作为调用者,C是被调用者。一般的做法是:
public class B{
private C comp=new C();
......
}
工厂模式实现如下:
public class B{
private C comp;
private final static MyFactory myFactory = MyFactory.getInstance();
public B(){
this.comp = myFactory.createInstanceOfC();
}
public void someMethod(){
this.comp.sayHello();
}
}
使用Ioc依赖性注射实现
public class B{
private C comp;
public B(C comp){
this.comp = comp;
}
public void someMethod(){
this.comp.sayHello();
}
}
这个就和模板模式有点类似,只是模板模式的使用范围有点窄而已
分享到:
相关推荐
IOC(Inversion of Control,控制反转)模式是一种软件设计原则,它在面向对象编程...通过分析UnityDemo.sln、UnityDemoApp、FileOperate、FileManager等文件和目录,我们可以深入理解IOC模式在C#中的具体应用和实践。
浅谈 Spring 原理 透析,IOC 和 AOP Spring 框架是一个从实际项目开发经验中抽取的,可高度重用的应用框架。它是一个轻量级容器,带有包装器,使许多不同的服务和框架更易于使用。轻量级容器接受任何 JavaBean,而...
首先,IOC模式的核心思想是将对象的创建和组装的权利从对象本身转移到外部容器。这种模式也被称为Dependency Injection(依赖注入),它强调的是对象间的依赖关系由容器负责管理和注入,而不是由对象自身负责。这样...
### Ioc模式与微容器详解 #### Ioc模式概述 ...通过了解Ioc模式的概念及其具体实现方式,我们不仅能够更好地理解现代软件架构的设计思想,还能够在实际项目中运用这些模式和技术来构建更加健壮、灵活的应用系统。
### 基于Ioc模式的软件开发框架重构 #### 引言 控制反转(Inversion of Control,IoC)模式及其相关技术如依赖注入(Dependency Injection),在现代软件开发中扮演着至关重要的角色。IoC模式的核心在于通过将对象...
**工厂模式的IoC应用** 在软件工程中,控制反转(Inversion of Control,简称IoC)是一种设计原则,它将对象的创建和管理权从代码中剥离出来,交由一个外部容器负责。Spring框架是Java领域实现IoC的典型代表,通过...
谈谈Spring IOC得理解,原理与实现.md
IOC模式是一种设计模式,它将对象的创建和依赖关系的管理从代码中分离出来,使系统更加灵活、可维护和可测试。在这个主题中,我们将深入探讨Java反射和动态代理如何帮助我们实现IOC。 首先,让我们理解Java反射。...
Java Spring代理模式AOP-IOC分析 一、代理模式概述 在软件设计中,代理模式是一种常用的设计模式。它可以在不修改原始代码的情况下,扩展或修改原始对象的行为。代理模式可以分为静态代理和动态代理两种。静态代理...
通过理解和实践这些例子,我们可以深入理解工厂模式的精髓,以及Spring如何通过IoC实现组件的松耦合。同时,对于【abstactFactory】,我们可以期待看到如何在Spring环境中实现更复杂的对象族创建。测试这些代码时,...
为了更好地理解 IoC 容器和依赖注入的实际应用场景,我们可以参考 Martin Fowler 在文章中提到的例子: ##### 示例:电影列表生成器 假设有一个 `MovieLister` 类,该类的功能是从所有电影中筛选出特定导演的电影...
1. 利用注解、反射和工厂模式设计一个简单的IoC容器 2. 该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解 含义 @Component 标注Bean @Autowired 标注需要被注入的...
而在IoC模式下,这种控制权被反转,Girl不再直接创建Boy,而是由外部容器(如Spring框架中的ApplicationContext)负责创建和管理Boy,然后将Boy注入到Girl中。 IoC的几种类型: 1. IOC type 0:没有使用IoC,对象...
Control,IoC)。在本文中,我将深入探索这个模式的工作原理,给它一个更能描述其特点的名 字——“依赖注入”(Dependency Injection),并将其与“服务定位器”(Service Locator) 模式作一个比较。不过,这两者...
IoC设计模式的实现通常依赖于容器,如Spring框架在Java中就是一个著名的IoC容器。开发者可以通过XML配置、注解或者编程式的方式来定义对象及其依赖关系。例如,在Spring中,我们可以在XML配置文件中定义Bean(代表一...
spring学习(aop ioc代理模式的理解以及整合mybatis进行开发使用)
JAVA设计模式之IOC实战02