ioc依赖注入的原则

一、.依赖就是有联系,有地方使用到他就是有依赖它,一个系统不可能完全避免依赖。如果你的一个类或者模块在项目中没有用到它,那么你可以从项目中删掉它,因为没有一个地方可以依赖它。

 

二、依赖倒置

 

需求增加了,需要不同的播放器,播放不同的文件,我们需要抽象出来,减少耦合。

耦合关系就是依赖关系,如果依赖关系太复杂,牵一发动全身,很难维护,依赖关系少,耦合关系就降低,系统就越稳定,所以我们要减少依赖关系。

 

上层模块不能依赖于下层模块,它们共同依赖于一个抽象。

抽象不能依赖于具象,具象依赖于抽象。

 

1.上层是使用者,下层是被使用者,这就导致了结果是上层依赖于下层,下层变动了,自然就会影响到了上层,导致系统不稳定,牵一发动全身。减少依赖,就是上层下层都去依赖另一个抽象,这个抽象比较稳定,整个就来说比较稳定。

 

2.面向对象编程时面向抽象或者面向接口编程时,抽象一般比较稳定,实现抽象的具体肯定要依赖抽象,抽象不应该依赖具体,应该依赖抽象

 

三、控制反转

 

 

现实生活中,是具体播放器和具体的媒体文件没有关系,你给它一个mp3文件他可以播放,给它一个mp4文件它可以播放,你删掉文件,播放器照样在,具体什么播放器什么文件,控制权全部是我们自己用。

 

我们可以通过反射来创建,把具体的文件写在配置文件里,这时客户端的代码不用变了只需要改变配置文件就好,稳定性又有了提高。

 

四、依赖注入

上面说的控制反转,是一个思想概念,但是也要具体实现,上面的配置文件也是一种执行方式。依赖具体的注入方式。

 

时间: 2024-08-27 17:44:40

ioc依赖注入的原则的相关文章

IoC 依赖注入、以及在Spring中的实现

资源来自网络: 去年火得不行的Spring框架,一般的书籍都会从IoC和AOP开始介绍起,这个IoC概念,个人感觉资料里都写得让人看得有些痛苦,所谓IoC,就是控制反转(Inversion of Control)的缩写,这个大家都知道,但是个人觉得理解这个概念,最好应该从依赖(dependence)开始讲起,以下观点由此展开: UML中依赖关系如A依赖于B,就是A中有对方的引用;也就是说依赖就是引用:A依赖于B,就是A使用B来做事情. 所谓依赖,举个例子说明,一个类Person,另一个类Car,

IoC 依赖注入容器 Unity

原文:IoC 依赖注入容器 Unity IoC 是什么? 在软件工程领域,“控制反转(Inversion of Control,缩写为IoC)”是一种编程技术,表述在面向对象编程中,可描述为在编译时静态分析器并不知道具体被耦合的对象,而该对象是在运行时被对象装配器绑定的. 在传统编程中,决定业务流程的对象是被静态分配的.而在 IoC 中,业务流程取决于对象装配器实例化提供的对象,这使利用抽象来定义对象间的交互成为可能.对象装配器为了能绑定一个对象,要求该对象必须具备兼容的抽象定义.例如类 Cla

图解IoC 依赖注入

图解IoC 依赖注入

Spring-DI控制反转和IOC依赖注入

Spring-DI控制反转和IOC依赖注入 DI控制反转实例 IDEAJ自动导入Spring框架 创建UserDao.java接口 public interface UserDao { public void say(); } 创建UserDaoImpl.java继承UserDao.java并重写say()方法 public class UserDaoImpl implements UserDao{ @Override public void say() { System.out.println

ASP.NET MVC IOC依赖注入之Autofac系列(二)- WebForm当中应用

上一章主要介绍了Autofac在MVC当中的具体应用,本章将继续简单的介绍下Autofac在普通的WebForm当中的使用. PS:目前本人还不知道WebForm页面的构造函数要如何注入,以下在WebForm页面将主要采用属性注入的方式. 接下来我们正式进入主题,在上一章的基础上我们再添加一个web项目TianYa.DotNetShare.WebDemo,首先看我们的解决方案 本demo的web项目为ASP.NET Web 应用程序(.NET Framework 4.5) 空Web窗体,需要引用

springboot启动流程(九)ioc依赖注入

所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 在前面的几篇文章中,我们多次提到这么一个转化过程: Bean配置 --> BeanDefinition --> Bean对象 Bean的配置可以是xml配置,也可以是java配置.BeanDefinition配置在内存中数据对象,也是Bean的元数据.在springboot启动过程当中,refresh上下文这个步骤将会解析xml配置以及java配置,从而把Bean的配置解析成为Bea

Spring IoC 依赖注入(二)源码分析

目录 Spring IoC 依赖注入(二)源码分析 1. 依赖注入口 - populateBean 1.1 doCreateBean 1.2 populateBean 2. 手动注入 2.1 相关的类说明 2.2 applyPropertyValues 2.3 BeanDefinitionValueResolver 2.4 依赖检查 2. 自动注入 2.1 那些字段会自动注入 2.2 名称注入 2.3 类型注入 Spring IoC 依赖注入(二)源码分析 本章主要分析 Spring IoC 依

关于Spring IOC (依赖注入)你需要知道的一切

[版权申明]未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自[zejian的博客] <Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初学者也适合spring有过开发经验的工程师,前者可用于全面了解Spring IOC的知识点,后者且

spring(3)------控制反转(IOC)/依赖注入(DI)

一,spring核心概念理解 控制反转: 控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理. 所谓的"控制反转"概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器. 没有控制反转这种模式前,你创建一个对象,在什么地方用,你得单独通过关键字new出来用, 但现在可以不用这样,你把new对象的权利交给spring配置文件,通过配置文件来'new', 就是权利的反转,你以前干的事