zoukankan      html  css  js  c++  java
  • Ioc思想

    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 企业级应用架构设计

  • 相关阅读:
    Ext.form.FieldSet字段集
    jQuery系列目录
    Ext.form.field.Trigger触发字段
    Ext.grid.Panel表格分页
    ExtJS Model数据实体模型
    Ext.form.field.Spinner微调字段
    Ext.window.MessageBox
    书单
    资料收集
    喧嚣
  • 原文地址:https://www.cnblogs.com/ARMdong/p/3195903.html
Copyright © 2011-2022 走看看