当前位置: 首页 > news >正文

哪些网站做的比较好的网站建设公司华网天下买赠两年

哪些网站做的比较好的,网站建设公司华网天下买赠两年,唐河微网站开发,手机端搜索引擎排名1 IoC理论的背景 我们都知道在面向对象的应用中#xff0c;软件系统都是由N个对象组成的#xff0c;它们通过彼此的合作#xff0c;最终实现业务逻辑。 图1#xff1a;耦合在一起的对象 如果我们打开机械式手表的后盖#xff0c;就会看到与上面类似的情形#xff0c;各…1 IoC理论的背景    我们都知道在面向对象的应用中软件系统都是由N个对象组成的它们通过彼此的合作最终实现业务逻辑。  图1耦合在一起的对象     如果我们打开机械式手表的后盖就会看到与上面类似的情形各个齿轮分别带动时针、分针和秒针顺时针旋转从而在表盘上产生正确的时间。上图画的就是这样的一个齿轮组它拥有多个独立的齿轮这些齿轮相互啮合在一起协同工作来共同完成某项任务。我们可以看到在齿轮组中如果有一个齿轮出了问题就可能会影响到整个齿轮组的运转。     齿轮组中各个齿轮之间的啮合关系,与软件系统中对象与对象之间的耦合关系非常类似。对象之间的耦合关系是必要的是协同工作的基础当然也是无法避免的否则无法保证系统整体的正常运转。目前很多工业级的应用越来越庞大对象之间的依赖关系也越来越复杂就会出现对象之间的多重依赖性关系因此架构师和设计师对系统进行分析和设计将面临很大的挑战。对象之间耦合度过高的系统必然会出现牵一发而动全身的情形。    图2对象之间复杂的依赖关系     耦合关系不仅会出现在对象与对象之间也会出现在软件系统的各模块之间以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度是软件工程永远追求的目标之一。    所以有人就提出来IOC理论用来实现对象之间的“解耦”目前已被广泛应用于很多项目中。 2 什么是控制反转(IoC)     IoC是Inversion of Control的缩写多数书籍翻译成“控制反转”还有些书籍翻译成为“控制反向”或者“控制倒置”这些都大同小异我个人觉得这个翻译有待商榷容易引起歧义是不是翻译为 “控制转移”会更好一些。     1996年Michael Mattson在一篇有关探讨面向对象框架的文章中首先提出了IoC 这个概念。对于面向对象设计及编程的基本思想前面我们已经讲了很多了不再赘述读者可以参考我前面的文章简单来说就是把复杂系统分解成相互合作的对象这些对象类的内部实现是透明的从而降低了解决问题的复杂度而且可以灵活地被重用和扩展。IoC理论提出的观点大体是这样的借助于“第三方”实现具有依赖关系的对象之间的解耦如下图    图3IoC解耦示意图     大家看到了吧由于引进了中间的“第三方”也就是IoC容器使得A、B、C、D这4个对象没有了耦合关系齿轮之间的传动全部依靠“第三方”了所有对象的控制权全部上缴给“第三方”这就是“控制反转”说法的由来意思就是各个对象的控制权都被转移给“第三方”了。    从另一个角度来看作为“第三方”的IoC容器成了整个系统的关键核心它起到了一种类似“粘合剂”的作用把系统中的所有对象粘合在一起发挥作用如果没有这个“粘合剂”对象与对象之间会彼此失去联系这就是所谓的Ioc容器被称为“粘合剂”的原因。    我们再把上图中间的Ioc容器拿掉后整个系统变为这样的情形  图4拿掉IoC容器后的系统     拿掉IoC容器后我们看到的就是系统开发所需要完成的全部内容这时候A、B、C、D这4个对象之间已经没有了耦合关系彼此毫不影响所以当你在实现Class A的时候根本不用再考虑B、C和D了系统对象之间的依赖已经降低到了最低程度。至于IoC容器你可以到开源组织的网站上找一找里面有很多比较成熟而且Free的使用起来非常简便。如果真能实现控制反转对于系统开发而言这将是一件多么美好的事情   3 什么是依赖注入(DI)     我们先看一些生活中的例子帮助你理解依赖注入(DI) 3.1 主机和内置硬盘    我们平时所用的电脑它的硬盘安装在主机里面从电脑的外部我们是看不见硬盘的。所以我们通常认为电脑的所有部件是融为一体的。  图5主机和内置硬盘     对于一体机而言一旦出现了问题我们可能无法准确地判断到底是什么零部件出现了问题有可能是CPU坏了也有可能是主板烧了还有可能是内存松动了。还有的时候比如电脑硬盘出现了问题可能导致整台电脑都无法使用。从这个例子我们可以看到部件之间“紧密耦合”的产生的问题无法准确的定位和诊断故障所在。这种情形在软件工程的理论中称之为可理解性和可测试性差。     如果你想修理电脑的硬盘那么在修理过程中就必须小心翼翼不要把其它的部件再搞坏了比如不慎把内存给碰松动了硬盘固然是修好了但整台电脑仍然无法使用。这种情形在软件工程的理论中称之为可修改性差。可理解性、可测试性、可修改性组成了系统的可维护性一体机的可维护性就表现得比较差。   3.2 主机和USB设备    大家对USB接口和设备应该都很熟悉。自从有了USB接口给我们使用电脑带来了很大的方便现在有很多的外部设备都支持USB接口。  图6主机和USB设备       从软件工程角度我们分析一下USB带来的好处1、USB设备作为主机的外部设备在插入主机之前与主机没有任何的关系两者都可独立进行测试无论两者中的任何一方出现什么的问题都不会影响另一方的运行所以可维护性比较好。2、同一个USB设备可以插接到不同的支持USB的任何主机也就是USB设备可以被重复利用所以可复用性比较好。3、支持热插拔只要是支持USB接口的设备都可以接入所以可扩展性比较好非常灵活。 3.3 依赖注入    2004年Martin Fowler从另一个角度来思考这个问题提出了“哪些方面的控制被反转了”这样一个问题并给出了答案“依赖对象的获得被反转”。于是他给“控制反转”取了一个他认为更合适的名字叫做“依赖注入Dependency Injection”。他的这个答案实际上点明了实现IoC理论的解决方法。所谓依赖注入就是由IoC容器在运行期间动态地将某种依赖关系注入到对象之中。     依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情都是指通过引入第三方即IoC容器实现软件系统中对象之间的解耦。     控制反转能够带给系统开发的好处与USB机制带来的好处基本类似而且依赖注入的实现跟USB机制也完全一样。USB机制是现实中依赖注入的很好的案例。我们用一个实际的例子分析一下USB机制 任务主机通过USB接口读取一个文件。思路首先必须制定一个USB接口标准主机对USB设备的访问严格按照USB接口标准USB设备提供的功能也必须符合USB接口标准。    当主机需要获取一个文件的时候它直接去读取USB接口根本不会关心USB接口上连接的是什么设备。如果我给主机连接上一个U盘那么主机就从U盘上读取文件如果我给主机连接上一个外接硬盘那么主机就从外接硬盘上读取文件。选取何种外部设备的权力由我说了算也就是控制权归我。至此,依赖注入的思路已经非常清楚当主机需要读取文件的时候我就把它所要依赖的外部设备挑出来一个帮他挂接上。这个过程就是一个被依赖的对象在系统运行时被注入另外一个对象内部的过程。在这个过程中我就起到了IoC容器的作用。     我们再把依赖注入应用到软件工程中    Class A依赖于Class B,当Class A需要用到Class B的时候IoC容器就会立刻创建一个Class B送给Class A使用。IoC容器就是一个类制造工厂你需要什么直接来拿直接用就可以了而不需要去关心你所用的东西是如何制成的也不用关心最后是怎么被销毁的这一切全由IoC容器包办。     4 实现IoC容器  ---------------------------------------------------- 后记之所以突然跳跃到39是因为有的同学基础比较好已经没有必要阅读有关面向对象、设计模式以及软件工程的基本理论那么可以从这里开始阅读。基础需要继续补全的同学可以从4继续看我会定期在两个方向进行更新。框架理论是架构师知识体系中非常重要的部分我会逐步结合实例把常见的一些框架方面的知识与大家共享。转载于:https://www.cnblogs.com/encounter/archive/2009/03/08/2189049.html
http://www.huolong8.cn/news/203567/

相关文章:

  • 域名后缀cn做网站seo优化在哪里学
  • 论述营销型网站的评价标准个人申请注册公司需要多少钱
  • js图片展示网站证书查询网免费查询
  • 展示型网站 带后台优化是什么
  • 集约化网站数据库建设规范设置数据库字符集为utf8
  • ftp 上传网站行业网站建设运营
  • 化工设计网站天津百度建网站
  • 常做网站首页的文件名wordpress勋章
  • 程序员做网站美工能过关吗为什么做网站费用贵
  • php图片展示网站微网站 注册
  • 怎么免费申请网站域名网易企业邮箱登录入口怎么登录
  • 阿里云如何搭建网站简历电商网站开发经验介绍
  • 建设网站要求和注意事项wordpress 模板4列插件
  • 静态网站维护小企业网站建设价格
  • 免费个人网站注册seo教程之关键词是什么
  • 提供设计的网站网站上的地图代码
  • 怎麽做网站网站 规划方案
  • 做网站设计师工资多少鹰潭北京网站建设
  • 深圳免费做网站wordpress模板导出
  • 网站制作代理加盟.net 网站模板下载地址
  • 如何分析网站建设方案wordpress修改
  • 全网网站建设维护软件开发图片
  • 电子商务网站开发的历程什么是建设型的网站
  • 宜昌网站制作公司排名灯塔建设网站
  • 作文网站哪个平台好优秀产品设计案例分析
  • 网站建设属于广告费么贵阳市城乡建设局网站
  • 南宁网站建设报价旅游网站建设的摘要
  • wordpress怎么建立网站吗网站开发背景论文
  • 做期货应关注什么网站科技网站哪个好
  • 设计网站推荐p健身器械网站建设案例