• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > asp.net中控制反转的理解(文字+代码)

asp.net中控制反转的理解(文字+代码)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了购物车代码 asp.net,下载asp.net源代码,源代码 asp.net,留言板asp.net代码,asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

对IOC的解释为:“Inversion of control is a common characteristic of frameworks, so saying that these lightweight containers are special because they use inversion of control is like saying my car is special because it has wheels.”

我想对这一概念执行 一个个人的阐述,以方便我的理解。控制反转,从字面意思来看, 就是控制权由被动变主动又变为被动,或被动变主动又变为被动。从这个角度来说,IOC就变得非常容易理解了。  
举个例子:你的主管要求你做一件事情,这个时候就存在这么多个 流程 ,主管命令你做事情(这个时候主动权在主管,你是被动的)   
你接到命令做事情(这个时候主题是你,你是主动的,控制权在你手里) 你完成事情(这个时候主题依然是你,控制权在你手里)   
报告主管做完事情(主动权又叫交到主管手里了)

上面的整个流程 就完成了一次IOC,从上面可以看出,IOC的基本思想是控制权的转换流程 。   

举个代码的例子:
假如有Class A,Class B,在A内部会原始化一个B,调用B的一个要领

DoMethod public Class B

  {

  public void DoMethod()

  {

  /// do somthing;

  }

  }

  public Class A

  {

  public void Excute()

  {

  B b = new B();

  b.DoMethod();

  }

  }
</div>

假如在Main函数中如下执行:   A a = new A();   a.Excute();  

从这两行代码来看,事实上也存在一个IOC的流程 ,a——>b——>a,理解的关键点就在在A的内部调用Excute的时候, 要领 b.DoMethod的执行。  理解了IOC,我们再看一下DI, 从上面A调用B我们可以看出, 在原始化一个A的实例时,也必须实例化一个B,也就是说如果没有B或者B出了疑问 , A就不能 实例化,这就产生了一种依赖,就是A依赖B, 这种依赖从设计的角度来说就是耦合,显然它是不能 满足高内聚低耦合的要求的。这个时候就须要 解耦, 当然解耦有很多种要领 , 而DI就是其中一种。不管任何一种解耦要领 ,都不是说使A和B完全没有联系 , 而是把这种联系 的实现变得隐晦,不那么直接,但是又很容易实现, 而且易于扩展,不像上面的代码那样,直接new一个B出来。那为什么我们总是把IOC和DI联系到一起呢? 是因为DI的基本思想就是IOC,而体现IOC 思想的要领 还有另外一个,那就是Service Locator,这个要领 好像涉及到的很少。其实这些都是从java里面衍生出来的,虽然本人已经好几年没用java,里面Spring这些都会用到IOC、DI好像他们是紧密连接在一块的。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 最详细的ASP.NET微信JS-SDK支付代码
  • 使用ASP.NET中关于代码分离的实例分享
  • asp.net基于HashTable实现购物车的方法
  • asp.net基于session实现购物车的方法
  • ASP.NET书籍信息录入实现代码
  • ASP.NET购物车实现过程详解
  • ASP.NET数组删除重复值实现代码
  • ASP.NET连接sql2008数据库的实现代码
  • asp.net中控制反转的理解(文字+代码)
  • asp.net各种cookie代码和解析实例

相关文章

  • 2018-08-20ASP.NET Core异常和错误处理(8)
  • 2017-05-11asp.net Web站点风格切换的实现
  • 2017-05-11Windows Server 2012 R2 Standard搭建ASP.NET Core环境图文教程
  • 2017-05-11ASP.NET MVC异步获取和刷新ExtJS6 TreeStore
  • 2017-05-11Asp.net 下载功能的解决方案
  • 2017-05-11Datalist控件使用存储过程来分页实现代码
  • 2017-05-11Asp.net程序优化js、css实现合并与压缩的方法
  • 2017-05-11巧用ASP.NET预编译Web应用程序规避调用延迟的方法
  • 2017-05-11asp.net获取ListView与gridview中当前行的行号
  • 2017-05-11在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net Ajax 安装与卸载方法
    • asp.net+Ligerui实现grid导出Excel和Word的方法
    • 四个常用的.NET的SQLHELPER方法实例
    • Grid或者DataTable中数据导出为Excel原来这么简单
    • ASP.NET2.0:页面中链入的CSS、js文件带中文时需注意
    • C#中string与byte[]的转换帮助类-.NET教程,C#语言
    • asp.net实现非常实用的自定义页面基类(附源码)
    • APS.NET MVC4生成二维码简单解析
    • .net生成验证码
    • Visual Studio 2017+OpenCV环境搭建教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有