`

依赖注入原理

阅读更多
依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给有构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。
分享到:
评论
7 楼 wiflish 2006-10-18  
引用
我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处:

1、对象间依赖关系构成分散,不宜维护
这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响;

2、可能会带来频繁创建对象的损失
直接在方法中new对象,每一次方法调用,都需要一次对象构造过程;

不知道有没有正确理解搂主的意思


我的意思是:我认为对象间的相互调用也是对象间的依赖关系的一种实现方式,但spring文档里面却说: 对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性,让我不理解。
  现在明白了,感觉这里所说的依赖注入背后的基本原理应该是Spring依赖注入的实现方式,即Spring的依赖注入是通过构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性的方式来实现。不知道这样理解对不对。
6 楼 qinysong 2006-10-17  
引用
问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式?

我觉得“对象间相互调用关系”当然是一种依赖关系。
至于搂主的疑问:
引用
对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿

我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处:

1、对象间依赖关系构成分散,不宜维护
这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响;

2、可能会带来频繁创建对象的损失
直接在方法中new对象,每一次方法调用,都需要一次对象构造过程;

不知道有没有正确理解搂主的意思
5 楼 wiflish 2006-10-17  
依赖注入背后的基本原理是spring官方参考文档上面说的。。。
官方参考(中文翻译):
   依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。相对于由bean自己来控制其实例化、直接在构造器中指定依赖关系或者类似服务定位器(Service Locator)模式这3种自主控制依赖关系注入的方法来说,控制从根本上发生了倒转,这也是控制反转(Inversion of Control, IoC)名字的由来。

并不是讨论上面所说的是不是依赖注入的基本原理问题,而是上面所说的对象间依赖方式中没有提到对象间相互调用(即在某个对象中new一个另外的类对象)的依赖关系(注意上面的红字描述),
问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式?
4 楼 cayenne 2006-10-17  
其实本质是把硬编码的类之间关系以配置文件的形式来规范(反射机制实现).
3 楼 galaxystar 2006-10-17  
同意楼上的!
2 楼 hasi 2006-10-16  
你说的这些不是什么原理吧,按我的理解反射机制才是原理,你说的是依赖方式
1 楼 wiflish 2006-10-16  
对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿。

相关推荐

    浅谈Spring IoC容器的依赖注入原理

    浅谈Spring IoC容器的依赖注入原理 Spring IoC容器的依赖注入原理是Spring框架的核心机制之一,负责将服务对象(Bean)实例化并将其提供给客户端使用。依赖注入原理可以分为两个阶段:IoC容器初始化和Bean实例化。 ...

    spring依赖注入的实现原理

    Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中常用的设计模式,它极大地提高了代码的可测试性和可维护性。在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)...

    Spring依赖注入原理解析.doc

    Spring依赖注入机制,也被称为控制反转(Inversion of Control,IOC),是Spring框架的核心特性,它使得应用程序的组件之间能够实现松散耦合。在传统编程中,对象通常自行创建和管理它们所依赖的其他对象,而在...

    SSH笔记-泛型依赖注入

    在Spring 4版本中,泛型依赖注入是一项重要的特性,它极大地提高了代码的灵活性和可维护性。本笔记将深入探讨SSH中的Spring框架如何实现泛型依赖注入。 首先,我们来理解泛型的基本概念。泛型是Java SE 5引入的一种...

    PHP依赖注入原理与用法分析

    本文将深入探讨PHP中依赖注入的原理、用法以及如何在PHP代码中实现依赖注入。 首先,我们需要明确什么是依赖注入。简而言之,依赖注入是指将一个类所依赖的对象通过构造函数或者设置函数传递给该类,而不是在类内部...

    guice超轻量级依赖注入

    1. **依赖注入原理**:Guice的核心思想是通过容器来管理对象的创建和生命周期,将对象的依赖关系从代码中分离出来。这样,我们不再需要在代码中直接创建对象,而是声明我们所需的依赖,Guice会根据配置自动进行实例...

    编码剖析Spring依赖注入的原理

    本文将深入解析Spring中的依赖注入原理,帮助开发者更好地理解和应用这一核心功能。 依赖注入(Dependency Injection,简称DI)是Spring框架的核心之一,它允许组件之间的依赖关系在运行时由外部容器来管理,而不是...

    Spring.Net IOC依赖注入原理流程解析

    Spring.Net IOC依赖注入原理流程解析 本文将详细介绍Spring.Net IOC依赖注入原理流程解析,通过示例代码介绍了非常详细,对大家的学习或者工作具有一定的参考学习价值。 一、什么是IOC? IOC(Inversion of ...

    spring依赖注入原理与用法实例分析

    Spring 依赖注入原理与用法实例分析 Spring 依赖注入是 Spring 框架中的一种设计模式,它允许组件之间松散耦合,提高了系统的灵活性和可维护性。本文将详细介绍 Spring 依赖注入的原理与用法,通过实例分析,帮助...

    灵活的依赖注入容器的PHP库.zip

    1. **依赖注入原理**:依赖注入的核心思想是将对象的依赖关系外部化,而不是在对象内部直接创建或查找依赖。这样,对象只需要关注自身的业务逻辑,而依赖的实例化和管理由容器负责。 2. **容器的角色**:DI容器作为...

    C# (.NET Core 6.0) DI依赖注入 示例

    较为框架式的演示了DI服务依赖注入 适用于熟悉C#中的继承,基本的Core命令使用等. 该示例演示了以服务器集群为背景的各种业务的依赖注入. 示例来自于B站杨中科老师的.NET Core(6.0)教学.

    22-07-29-058_WebApplicationPart(内置依赖注入中间件).rar

    1. **依赖注入原理**:依赖注入的基本思想是,对象不直接创建其依赖项,而是通过构造函数、属性或方法接收它们。这样可以避免硬编码依赖关系,使得代码更加松耦合。在.NET Core中,内置的IServiceProvider接口和...

    详解asp.net core 依赖注入

    依赖注入(Dependency Injection,简称DI)是软件设计中一种重要的模式,它有助于实现代码的高内聚和低耦合,从而提高系统的可测试性和可维护性。在ASP.NET Core中,依赖注入是核心架构的一部分,使得开发者能够轻松地...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

    EJB依赖注入的原理

    依赖注入(Dependency Injection,简称DI)是软件设计模式中的一种,它强调将对象间的依赖关系交由外部容器管理,而非由对象自身负责。EJB3.0规范引入依赖注入,大大提高了代码的可测试性和可维护性。在EJB3.0中,...

    安卓开发-用Roboguice实现依赖注入-.zip.zip

    在Android应用开发中,依赖注入(Dependency Injection,简称DI)是一种设计模式,它可以帮助开发者创建更灵活、可测试和可维护的代码...了解和掌握依赖注入原理及RoboGuice的使用,对于提升Android开发技能大有裨益。

    Spring Ioc 注解 依赖注入

    ### Spring IoC与注解依赖注入详解 #### 一、Spring框架简介 Spring框架是由Rod Johnson创建的一个开源项目,最初是为了解决企业级应用开发中的复杂性问题而诞生的。Spring框架的核心特性包括IoC(Inversion of ...

    MVC4使用Autofac实现依赖注入Demo

    在软件开发中,依赖注入(Dependency Injection,简称DI)是一种设计模式,它能够帮助我们构建松耦合、可测试和可维护的代码。本文将深入探讨如何在MVC4应用程序中利用Autofac这个流行的依赖注入框架来实现DI。 ...

Global site tag (gtag.js) - Google Analytics