IOC控制反转手记
来源:互联网 发布:清除数据恢复出厂英文 编辑:程序博客网 时间:2024/05/21 06:37
IOC(Inverse of Control) 通常被称为控制反转 ,是一种设计模式,主要关注组件的依赖性,配置,以及组件的生命周期。IOC也适应与类,同常情况下调用一个类的是弘扬,必须由自己创建一个调用类的对象的示例;采用IOC 模式以后,创建类的实例的任务交给容器或者框架来完成,应用程序直接使用容器或者框架中的创建的类的对象即可。
public class Song{ public void sing(){ ZhouJielun zj =new ZhouJielun(); zj.singsong("song"); }}
上面代码事件的依赖关系为,唱歌事件依赖于ZhouJielun 这个对象,通过直接调用ZhouJielun这个对象的方法singsong 来完成唱歌这一事件的发生,如果ZhouJielun这一对象出现异常,那么唱歌事件将无法发生,这样写出来的程序耦合度高。
public class song{ public void sing(){ singer asinger =new singer(); singer.singsong("song"); }}
上面的这段代码引入了一个singer 的接口,通过接口来完成唱歌的事件,这样一来,如果ZhouJielun来不了了,可以选择其他的对象来完成演唱的事件,这样就由个人演唱会变成了群星演唱会。不过这样一来一来关系变成了唱歌事件依赖于singer对象和ZhouJielun,并没有实现真正的解耦,要想实现真正的解耦,可以在唱歌这一过程中加入一个导演,实现让导演控制整个流程,导演负责将ZhouJielun这个对象设定为演唱者,至于唱什么,怎么唱,最由ZhouJielun这个对象来决定,以此方式来完成演唱事件。加入导演以后,song中的sing方法不再依赖于ZhouJielun这个对象,整个演唱事件都是有导演来控制,一个Director类来控制各对象之间的调用关系,各个零散的对象由Director统一和装配完成演唱事件,在这之中,Director所起的作用,就是开头说的容器或者框架实现的功能。**控制反转IOC 包括两部分内容,一部分是控制,另一部分是反转,,控制指的是对象应该调用那个类的控制权,反转指的是控制权由调用对象转移到容器或者框架。使用IOC后对象将会被动的接受它所依赖的类而不需要自己去找该类,容器会将对象的以来类提供给他**。此文为博主学习所用,如有错误欢迎指正!
0 0
- IOC控制反转手记
- Spring IOC 反转控制
- 控制反转(Ioc)
- IOC反转控制详解
- Ioc 反转控制
- Spring-----> IOC(控制反转)
- IoC理论控制反转
- IOC 控制反转
- Ioc--控制反转详解
- Ioc--控制反转详解
- 控制反转(IoC)容器
- Ioc控制反转
- IoC 控制反转
- Ioc--控制反转详解
- 初识控制反转(IoC)
- IOC控制反转
- Spring - 控制反转IOC
- Spring IoC[控制反转]
- typedef 的用法
- c语言读写函数
- android Studio Lambda插件(gradle-retrolambda)安装
- 2. 使用Python 解释器
- 拉格朗日(Lagrange)插值曲线
- IOC控制反转手记
- unity 3d中如何创建公有共用的代码段或数据,让所有其他类或者脚本都能访问?(代码说明static 静态类的使用)
- linux c 获得本机时间date
- MYSQL分页limit速度太慢优化方法
- 汇编语言之转移指令和原理
- 线性筛素数
- linux信号函数signal(SIGCHLD, SIG_IGN)
- hdu 5948 Thickest Burger 2016ACM/ICPC沈阳赛区现场赛A
- [hihoCoder挑战赛24](贪心)(期望DP)(后缀自动机)