Unity系列之简介

Unity的目标是为了提升"依赖注入"的思想,去建立更加松耦合的系统.patterns & practices 小组在那个时候实现DI的方式和我们现在认为的DI有所不同,DI不是单一的可重复使用的容器,而是应该专门用于正在使用它的系统.

我们使用一个叫做ObjectBuilder的类库(一个用于创建DI容器的框架),所以,理论上我们可以为我们的每一个项目创建一个容器,这正是我们想要做的.理想很美好,但是它工作的并不是很好,ObjectBuilder是一个高度解耦、抽象的,使用它必须手动组装它,再加上缺乏文档,花了很多时间了解需要去哪里,以及如何将其整合到有用的东西中去,而这些时间花在了编写、调试和优化DI容器上,而不是在实际的项目需求上工作上。有趣的是当有人想要引用CAB(它使用了一个基于一个版本的DI容器ObjectBuilder)和企业图书馆(基于不同版本的ObjectBuilder)在同一个项目中。集成将会变得非常困难。光光在同一个项目中处理两个不同的版本ObjectBuilder,也是一个不小的挑战。还有一次性的容器导致了一次性的可扩展性和集成接口:在企业库中没有用的在CAB中也没有用。

当我们在Web客户端软件工厂项目的末尾又花了一个星期的时间修复了CWAB中的一堆bug:(这些bug和在CAB中的非常相似),所以为什么不用一个容器实现,代替重复的实现一个又一个的容器。

通过上面的挫败,Unity诞生了,企业库4.0小组,将依赖注入应用程序(已知的Unity最原始的版本)放到了产品列表里面,我们对于Unity这个项目的目标很简单,首先,向我们的社区介绍并推广依赖注入的概念没有障碍的通过大量底层实现细节。第二,有一个核心的容器,有一个易于使用的API,我们,微软的其他团队,或者任何组织对使用可用的开放源码感到不舒服的人项目(不管出于什么原因)都可以使用。第三,有各种各样的可扩展性机制任何人都可以添加功能,而不需要打开核心代码。

在我的观点看来,Unity在上面的目标都取得了成功.我对我们对于.Net社区所产生的影响感到骄傲.Unity很快的成为了.Net生态系统中最受欢迎的DI容器.更重要的是,DI不再是"专家技术",而是主流的一部分,甚至是微软自家的框架(ASP. NET MVC and WebAPI)均来自DI的支持.你得知道,一个概念(依赖注入)变成一个核心观点,Unity发挥了很大的作用.

1、动机

当您设计和开发软件系统时,有许多需求需要考虑到。一些是具体的系统问题,一些是通用的问题。您可以将一些需求分类为功能性需求,以及一些非功能性需求。对于每个不同的系统,需求将会有所不同。下面列出的需求是常见的需求,特别是对于业务线的需求(LOB)具有相对较长的预期寿命的软件系统。它们不一定都是重要的

原文地址:https://www.cnblogs.com/GreenLeaves/p/8809786.html

时间: 2024-08-30 15:47:39

Unity系列之简介的相关文章

Unity 3D类结构简介

趁着周末,再来一发.对于Unity3D,我也是刚开始学习,希望能够与大家多多交流.好了,废话不多说,下面继续. 本篇文章使用C#进行举例和说明.关于Unity 3D编辑器中的各种窗口,网上有很多资料了,这里不做介绍,默认大家都知道各个窗口的作用了,并会在Unity 3D编辑器中执行基本的操作. 上一篇讲的是Unity 3D的基础知识,这篇讲一下我刚开始学习编写脚本时遇到的一些困惑,主要是Unity 3D自身继承结构方面的问题. 脚本作为Unity 3D中的一个组件,是经常会使用到的.一个对象可以

ED/EP系列1——简介

电子存折(ED:ElectronicDeposit)一种为持卡人进行消费.取现等交易而设计的支持个人识别码(PIN)保护的金融IC卡应用.它支持圈存.圈提.消费和取现等交易. 电子钱包(EP:Electronic Purse)一种为方便持卡人小额消费而设计的金融IC卡应用.它支持圈存.消费等交易.消费不支持个人识别码(PIN)保护. 电子钱包/电子存折应用为同一类应用,两者在卡片和终端的处理流程上基本相同,主要区别有:电子钱包应用支持消费.圈存等交易,消费无须提交个人识别码,卡片中的消费明细记录

高老师的系列培训课程 简介

高老师的系列培训课程 简介 No. 課程名稱 新型架构思维与技术 C01. 新一代创新型架构设计方法和技术 ==>请看说明 C02. CSA首席架构师的<策略思考技术> ==>请看说明 终端.大数据.云平台架构师 C03.  Android_从程序员到架构师之路 C04.  解析Android架构体系和机制设计 C05.  Android终端厂商的跨(芯片)平台架构设计 C06.  行业别应用框架(Open API)开发实战 ==>请看说明 C07.  大数据的<Jav

Unity 3D入门简介

最近在刚开始学习Unity 3D,在这里记录一下学习心得和学习笔记,边学边写,可能会比较零散.好了,废话不多说,今天从Unity 3D入门写起,主要简要介绍一下Unity 3D的和一些学习资料.以下如果不作特别说明,均是指Windows平台的Unity 3D,版本是4.5.1f3. Unity 3D是一款游戏开发引擎,目前支持2D和3D游戏的开发,其最大的优势就是跨平台性非常好,可以很容易的将PC端制作的游戏移植到Android.IOS等移动平台,当然也可以创建网页游戏.刚开始进行Unity 3

booklet jquery插件系列之简介

booklet jquery插件系列之简介 一.安装 1.添加CSS和Javascript 添加booklet CSS文件到你的页面. <link rel="stylesheet" href="plugin/booklet/jquery.booklet.latest.css" media="screen,projection,tv"> 然后依次添加jQuery库,jQuery UI(可选)jQuery Easing插件和Booklet

Unity Standard Assets 简介之 Utility

决定写这个系列起因于刚才的偶然所见,我发现当前版本的Unity有一个 Utility 标准资源包,里面有一个 FPSCounter 脚本提供了显示游戏运行帧率的基本功能,而我几周前刚刚写过一个同样功能的脚本.“重复造轮子”的挫折感深深刺激了我,鉴于Unity官方并没有对他们的标准资源做多少介绍性的工作,所以我打算对标准资源中几个比较有用的包做一个简单的研究和介绍,避免自己和其他人浪费不必要的时间和精力. Utility包(Unity5.3.4),顾名思义是工具集. 包内含三个文件夹,其他两个顾名

IPV6技术系列①——开篇简介

写在开头 ??? ??17年10月开启51cto博客之路,原想将自己所学所想,或者在各种不同情况下走过的坑,踩过的雷,能够利用51cto的平台和大家分享,作为马上步入工作岗位的大学生,我深深能够理解我们学生在面临广阔的网络世界时的迷茫,面对复杂网络拓扑的慌张.所以虽然作为一名刚刚入行的行业小白,还是能够希望通过自己在课堂与实验的过程中收获的冰山一角的经验与大家分享.对于前辈们来说,这些博客实在过于浅显,但是通过一段时间的探索,发现网络上还并没有一个成系统的教程是面对大学生群体的,希望我的一点经验

saltstack之基础入门系列文章简介

使用saltstack已有一段时间,最近由于各种原因,特来整理了saltstack基础入门系列文章,已备后续不断查阅(俗话说好记性不如烂笔头),也算是使用此工具的一个总结.saltstack的前六篇文章主要讲述了saltstack的安装.远程执行.配置管理.数据系统以及jinjia模板等知识点,从第七篇往后的文章是一些使用saltstack的案例,包括系统初始化,rpm包以及源码安装等. 博客中saltstack系列的文章,适合初学者从零开始学习直到逐渐熟练使用.文章具有一定的连贯性,如果没有任

css系列教程--简介及基础语法和注意事项

css简介:css指的是层叠样式表,cascading style sheets.用来定义html中的dom节点如何展示在页面中的问题.解决了内容与表现形式的分离问题.常见的样式表有外部链接样式表和内部样式表,简称,外链和内联. css基础表现形式:cssname{porerty:value} div{width:100px;} 注:样式表的声明是可以覆盖的,分为以下几种情况:1.外部样式表重新定义.在外部样式表中,定义了两次同样的名称,不同的样式属性的css,默认会以最后一次定义的为准或者最后