IOC模式的学习笔记
2006-01-11 09:49
387 查看
IOC模式的目标:将组件的配置与使用分离,并且是由框架完成的.
依赖注入的形式主要有三种,我分别将它们叫做构造子注入(Constructor Injection)、设值
方法注入(Setter Injection)和接口注入(Interface Injection)。
依赖倒置原则[Martin 1996]:
A. 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象。
B. 抽象不能依赖于具象,具象依赖于抽象。
类库与框架
类库给用户提供了一系列可复用的类,这些类的设计都符合面向对象原则和模式。用户使用时,可以创建这些类的实例,或从这些类中继承出新的派生类,然后调用类中相应的功能。在这一过程中,类库总是被动地响应用户的调用请求。
“框架则会为某一特定目的实现一个基本的、可执行的架构。框架中已经包含了应用程序从启动到运行的主要流程,流程中那些无法预先确定的步骤留给用户来实现。程序运行时,框架系统自动调用用户实现的功能组件。这时,框架系统的行为是主动的。
应用程序和框架系统之间的依赖关系有以下特点:
1. 应用程序和框架系统之间实际上是双向调用,双向依赖的关系。
2. 依赖倒置原则可以减弱应用程序到框架之间的依赖关系。
3. “控制反转”及具体的模板方法模式可以消解框架到应用程序之间的依赖关系,这也是所有框架系统的基础。
4. 框架系统可以独立重用。
依赖注入的核心思想是:
1. 抽象接口隔离了使用者和实现之间的依赖关系,但创建具体实现类的实例对象仍会造成对于具体实现的依赖。
2. 采用依赖注入可以消除这种创建依赖性。使用依赖注入后,某些类完全是基于抽象接口编写而成的,这可以最大限度地适应需求的变化
依赖注入的形式主要有三种,我分别将它们叫做构造子注入(Constructor Injection)、设值
方法注入(Setter Injection)和接口注入(Interface Injection)。
依赖倒置原则[Martin 1996]:
A. 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象。
B. 抽象不能依赖于具象,具象依赖于抽象。
类库与框架
类库给用户提供了一系列可复用的类,这些类的设计都符合面向对象原则和模式。用户使用时,可以创建这些类的实例,或从这些类中继承出新的派生类,然后调用类中相应的功能。在这一过程中,类库总是被动地响应用户的调用请求。
“框架则会为某一特定目的实现一个基本的、可执行的架构。框架中已经包含了应用程序从启动到运行的主要流程,流程中那些无法预先确定的步骤留给用户来实现。程序运行时,框架系统自动调用用户实现的功能组件。这时,框架系统的行为是主动的。
应用程序和框架系统之间的依赖关系有以下特点:
1. 应用程序和框架系统之间实际上是双向调用,双向依赖的关系。
2. 依赖倒置原则可以减弱应用程序到框架之间的依赖关系。
3. “控制反转”及具体的模板方法模式可以消解框架到应用程序之间的依赖关系,这也是所有框架系统的基础。
4. 框架系统可以独立重用。
依赖注入的核心思想是:
1. 抽象接口隔离了使用者和实现之间的依赖关系,但创建具体实现类的实例对象仍会造成对于具体实现的依赖。
2. 采用依赖注入可以消除这种创建依赖性。使用依赖注入后,某些类完全是基于抽象接口编写而成的,这可以最大限度地适应需求的变化
相关文章推荐
- 【JavaEE学习笔记】Spring_01_工厂模式,Spring小程序,IoC控制反转
- 【学习笔记六】 - js中 创建对象的模式与继承 及 js中实现块级作用域和函数私有变量 《js高程》6-7笔记
- 《Head First 设计模式》学习笔记:策略模式与观察者模式
- [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。
- (Head First 设计模式)学习笔记(3) --装饰者模式(StarBuzz咖啡店实例)
- 设计模式学习笔记三——Abstract Factory模式
- 30日学习笔记,关于java的IO系统已经Decorarot模式
- C#面向对象设计模式纵横谈 学习笔记1 面向对象设计模式与原则
- 阿Sam的设计模式学习笔记---- Composite模式
- 设计模式学习笔记——模板方法模式
- Javascript学习笔记_异步模式
- 【DAY2】hadoop 完全分布式模式配置的学习笔记
- Java SE 学习笔记 第六记---代理模式
- java/android 设计模式学习笔记(12)---组合模式
- 设计模式学习笔记——状态模式
- 设计模式学习笔记-状态模式
- 设计模式学习笔记五——Prototype模式
- silverlight 学习笔记 (二): silverlight的开发模式
- GOF-23种设计模式——装饰模式(学习笔记)
- 单例模式学习笔记