先概括一下Inversion of Control控制反转:是一种设计模式,在依赖关系上进行倒转。具体的体现有“应用程序不应依赖于容器,而是容器服务于应用程序”。
根据Martin Fowler的理解,IoC其实就是框架(framework)和库(library)的区别。库实际意义上就是一系列可用的方法函数,而框架则定义了一些设计模式,比如有如下的ruby代码
#ruby
puts 'What is your name?'
name = gets
process_name(name)
puts 'What is your quest?'
quest = gets
process_quest(quest)
在这里,控制是在这段主程序代码里面进行的(程序员的这段程序拥有代码的控制权),什么时候问问题,什么时候输入,都是由程序员写的这段程序来决定的。而看下面一段代码
require 'tk'
root = TkRoot.new()
name_label = TkLabel.new() {text "What is Your Name?"}
name_label.pack
name = TkEntry.new(root).pack
name.bind("FocusOut") {process_name(name)}
quest_label = TkLabel.new() {text "What is Your Quest?"}
quest_label.pack
quest = TkEntry.new(root).pack
quest.bind("FocusOut") {process_quest(quest)}
Tk.mainloop()
这里,框架提供了bind的接口,让程序员把方法调用传给框架,而具体何时调用,是由框架来通知程序的。这样一来,其实就是对于程序控制的反转。
在其他例子里面,比如C#的按钮,可以让程序员注册回调函数监听事件,在触发事件(比如按钮被点击)的时候,被注册的回调函数就会被调用,在这个意义理解,程序代码从“主动”变成了“被动”。这种IoC的特性,其实也是框架提供的设计模式。
Martin Fowler关于IoC的文章:
http://martinfowler.com/bliki/InversionOfControl.html
分享到:
相关推荐
它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)等特性实现了对应用程序的解耦,并通过IOC(Inversion of Control)控制反转来简化配置和管理。 #### 二、Spring ...
IOC控制反转代码,bilibili配套文件 IOC(Inversion of Control,控制反转)是 Spring 框架的核心机制之一,它是一个用于创建和管理对象的容器。控制反转是将对象的创建进行反转,常规情况下,对象都是开发者手动...
**Spring技术--IOC控制反转** 在Java开发领域,Spring框架以其强大的功能和广泛的应用而闻名。其中,IOC(Inversion of Control,控制反转)是Spring的核心特性之一,它改变了传统对象创建和管理的方式,实现了依赖...
IOC,即Inversion of Control,中文常被翻译为“控制反转”,是面向对象编程领域中的一个设计模式,尤其在Spring框架中广泛应用。控制反转是一种设计原则,它将对象的创建和组装过程从代码中分离出来,交给容器来...
IOC(Inversion of Control,控制反转)是一种设计原则,它改变了传统程序设计中对象之间的依赖关系。在没有IOC的情况下,一个对象通常会自行创建或查找它需要协作的对象,这导致了对象间的紧密耦合。然而,IOC通过...
这些容器背后的核心技术通常被统称为“控制反转”(Inversion of Control, IoC)。本文将深入探讨这一模式的工作原理,并特别关注依赖注入(Dependency Injection, DI)这一更为具体的形式。此外,我们还将对比依赖注入...
IoC,即Inversion of Control,控制反转,是Spring框架的核心特性之一。传统的程序设计中,对象的创建和依赖关系的建立通常由对象自身负责。但在IoC模式下,这些控制权被转移到了外部容器,即Spring容器。容器负责...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它改变了传统Java应用程序中对象的创建和管理方式。在传统的程序设计中,我们通常手动创建对象并管理它们之间的依赖关系,而在Spring中,这些...
### IOC控制反转在代码中的体现 #### 一、IOC(Inversion of Control)概念解析 IOC,即控制反转,是一种设计思想,在Java开发领域中,它主要被用来消除程序之间的依赖性,使得类的设计更加灵活。传统的编程模式下...
Spring框架的核心特性之一就是依赖注入(Dependency Injection,简称DI),它通过控制反转(Inversion of Control,简称IOC)实现。这个"helloIoc.zip"压缩包包含的是一组用于演示Spring IOC基本概念和使用的测试...
**Spring IOC控制反转详解** 在Java开发中,Spring框架的核心特性之一就是IOC(Inversion of Control,控制反转),它改变了传统程序设计中的对象依赖管理方式,使得开发者可以更专注于业务逻辑,而不是对象的创建...
控制反转(IOC,Inversion of Control)是一种设计模式,它在软件工程中被广泛应用,特别是在Java开发中。IoC的核心思想是将对象的创建和管理权交给一个外部容器,而不是让对象自行创建和管理依赖。这有助于降低耦合...
**控制反转(Inversion of Control, IOC)**是软件设计中的一个重要概念,它在近年来的系统开发模式中占据了显著地位,特别是在面向对象编程领域。控制反转的核心思想是将原本由程序内部控制的流程或者对象创建过程...
在软件开发中,IoC(Inversion of Control,控制反转)是一种设计模式,它将对象的创建和管理责任从代码中剥离出来,交由一个容器来处理。Spring框架是Java平台上的一个核心组件,其核心特性就是依赖注入...
### IOC控制反转学习文档 #### 一、控制反转(IOC)概述 控制反转(Inversion of Control,简称IOC),是Spring框架的核心概念之一。它通过管理对象间的依赖关系,实现了对象的解耦,使得代码更加灵活且易于维护。在...
### Spring框架中的IoC控制反转详解 #### 一、IoC概述 控制反转(Inversion of Control,简称IoC)是一种设计思想,在Spring框架中,它主要用来解决对象依赖问题。传统的面向对象编程中,对象之间的依赖关系由对象...
在软件开发领域,IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是两种重要的设计模式,特别是在Java和Spring框架中被广泛使用。这些概念有助于提高代码的可测试性、可维护性和模块...
.NET框架中的Autofac是一个流行的依赖注入(DI)容器,它实现了Inversion of Control(IoC)设计模式。IoC是一种编程范式,通过将对象的创建和管理职责从对象自身转移到外部容器,使得代码更加模块化,更易于测试和...
Java中的控制反转(IOC,Inversion of Control)和Spring框架是现代企业级应用开发的核心概念。IOC使得应用程序的组件之间解耦,提高了代码的可测试性和可维护性。本篇文章将详细探讨如何通过反射机制来实现一个简单...
在深入了解Spring框架之前,我们首先需要理解“控制反转”(Inversion of Control,简称IoC)的概念。IoC是一种设计原则,旨在减少组件之间的耦合度,提高代码的可维护性和可测试性。在传统的编程模式中,组件或对象...