博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ioc思想
阅读量:6230 次
发布时间:2019-06-21

本文共 881 字,大约阅读时间需要 2 分钟。

DIP: Dependency Inversion Principle 依赖倒转原则

高层次组件不应该依赖于低层次组件,二者均应该依赖于接口。

抽象不应该依赖于细节,细节应该依赖于抽象。

IOC:Inversion Of Control 控制反转

核心:底层模块是通过基于依赖倒置原则的类型的构造函数注入的。

伪代码:

public class FinanceInfoService{	// 通过构造函数注入依赖。外部组件的解析放在模块外部进行	// 例如,使用控制反转Ioc框架		IFinder _finder = null;	IRenderer _renderer = null;		//构造函数	(注入依赖)	public FinanceInfoService(IFinder finder, IRenderer renderer)	{		_finder = finder;		_renderer = renderer;			}		public string GetQuotesAsHtml(string symbols)	{		//获取Finder组件		if(_finder == null)		{			throw new NullReferenceException("Invalid finder.");		}				//获取原始数据		StockInfo[] stocks = _finder.FindQuoteInfo(symbols);				//获取Render组件		if(_render == null)		{			throw new NullReferenceException("Invalid renderer.");		}				//将原始数据呈现为HTML		return _renderer.RenderQuoteInfo(stocks);	}		...	}

  

摘自:Microsoft .Net 企业级应用架构设计

转载于:https://www.cnblogs.com/ARMdong/p/3195903.html

你可能感兴趣的文章
mariadb 实用功能3 修改表结构显示进度
查看>>
部署 Office Communications Server 2007 R2 Enterprise Edition-Part01
查看>>
烂泥:阿里云RDS本地恢复数据
查看>>
[IE 技巧] 显示/隐藏IE 的菜单/工具栏
查看>>
Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)...
查看>>
一些C++11语言新特性 - Uniform Initialization
查看>>
nagios客户端未启动报错
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
微软豪购Linkedin 补移动社交船票?
查看>>
实例:某大型企业遭受勒索蠕虫袭击纪实
查看>>
“云计算”让城市智慧起来
查看>>
Google计划收购数据科学社区Kaggle
查看>>
《OpenGL ES应用开发实践指南:Android卷》—— 1.3 初始化OpenGL
查看>>
Java 生成 PDF 文档
查看>>
C语言实现栈的基本操作
查看>>
策略模式
查看>>
linux(6.8版本最小化安装)安装nginx实战
查看>>
我的友情链接
查看>>
检讨~
查看>>
html引用公共的html文件
查看>>