Unity学习笔记(1):认识Unity
2024-08-30 07:58:59
Unity是什么?
Unity是patterns & practices团队开发的一个轻量级、可扩展的依赖注入容器,具有如下的特性:
- 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能还包含了其它被依赖的对象实例。
- Unity允许将预先配置的对象注入到类中,实现了inversion of control (IoC)的功能。在Unity中,支持constructor injection(构造器注入), property setter injection(属性设值注入)以及method call injection(方法注入)。ps:这里的方法注入与Martin Fowler定义的接口注入类似而稍有区别。
- 支持容器的体系结构。一个容器可以有子容器,允许从子容器到父容器的对象定位查询。
- 可以通过配置文件进行准备和配置容器。
- 不会影响到类的定义(属性设值注入和方法注入除外),这也是轻量级容器的一个体现。
- 支持自定义的容器扩展。
IoC又是什么?
IOC(Inversion of Control),中文译为控制反转,又称为“依赖注入”(DI =Dependence Injection)
IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。 所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
简单地说,就是应用本身不负责依赖对象的创建和维护,而是将其交给一个外部容器来负责。这样控制权就由应用转移到了外部IoC 容器,即控制权实现了所谓的反转。比如在类型A 中需要使用类型B 的实例,而B 实例的创建并不由A 来负责,而是通过外部容器
来创建。通过IoC 的方式实现针对目标Controller 的激活具有重要的意义。
Unity安装
使用VS自带工具,NuGet管理器进行安装,如图所示。
Unity简单示例
创建Unity容器
IUnityContainer container = new UnityContainer();
创建接口映射
container.RegisterType<ILogger, MyLog>();
获取对象实例
ILogger log = container.Resolve<ILogger>();
本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
最新文章
- Python的文件操作
- Linux下使用automake、autoconf生成configure文件
- Tomcat服务器性能优化
- HDU 4857 逃生 (优先队列+反向拓扑)
- 前端js,css文件合并三种方式,bat命令
- COM 学习(五)——编译、注册、调用
- ES6学习(2)——arrows箭头函数
- 菜鸟的MySQL学习笔记(二)
- Ice_cream’s world III--2122
- Gengxin讲STL系列——String
- HDU 3923 Invoker 【裸Polya 定理】
- 比较全的JavaScript倒计时脚本
- kali高速更新源以及主题修改方法
- const类型变量的详细解读
- Centos7下Rinetd安装与应用(转)
- 【php】php实现数组反转
- php 操作json的各种格式
- QueryRunner类实战
- 第二阶段——个人工作总结DAY02
- PHP20-challenge10
热门文章
- MAC SVN Phonegap
- [转]Oracle hang分析
- javaweb学习总结十(xml解析<;SAX以及DOM方式>;)
- yii2.0的gii生成代码bug
- Nginx HTTP User_agent
- Table of Contents - JAXB
- ActiveMQ(5.10.0) - Configuring the Simple Authentication Plug-in
- sublime text使用技巧
- 随机提取N条记录[多种数据库方法]
- asp.net上传文件时出现 404 - 找不到文件或目录。