重装系统之后安装软件奇慢(实际工作中的总结)
2011-08-19 13:50
309 查看
依赖倒转原则,听名字感觉就十分的奇怪。“依赖”是什么?为什么要到转呢?理解这些
首先要从"依赖倒转原则"的定义入手。
依赖倒转原则:
高层模块不应该依赖于底层模块,而是应该依赖于抽象;抽象不应该依赖于具体的
细节;细节应该依赖于抽象。
高层模块和底层模块容易明白。每一个功能模块的实现都是由原则逻辑组成的,不可
分割的原则逻辑就是底层模块,其再组装就是高层模块。那么,抽象和细节有事怎么一回
事呢?这里的抽象就是java中的抽象类、接口,至于细节则就是具体实现类了。因此上述
的三层含义可以概括如下:
1、模块之间的依赖是通过抽象发生的,实现类并不体现其关系,其依赖关系是通过抽
像类、接口体现的。
2、对于接口、抽象类的编码不应该依赖于实现类。
3、实现类具体的行为是依赖于接口、抽象类的。
通俗的讲就是针对接口编程,而不是针对实现编程。
现在反过来去理解“依赖倒转原则”:传统的过程性系统的设计方法倾向于是高层次的依赖于
低层次的模块;抽象层次依赖于具体层次。倒转原则就是把这个依赖关系倒转过来就是“依赖”
倒转的由来。
具体情况如下:错误的依赖关系
倒转过来之后的关系:
不过怎样做到依赖倒转原则呢?
以抽象的方式耦合是实现依赖倒转原则的关键,这里的耦合关系一共有三种:
● 零耦合:如果两个类之间没有耦合关系,则成为零耦合关系
● 具体耦合:耦合关系发生在两个具体的类之间,经由一个类对
另一个类的直接引用造成的。
● 抽象耦合:耦合发生在一个具体类和一个抽象类之间,较之前者更灵活
因为要实现抽象耦合,就必然涉及到继承,因此里氏替换原则就是其前提。
关于里氏替换原则上一篇文章有介绍。
本文出自 “kiritor” 博客,请务必保留此出处http://kiritor.blog.51cto.com/7400479/1226790
首先要从"依赖倒转原则"的定义入手。
依赖倒转原则:
高层模块不应该依赖于底层模块,而是应该依赖于抽象;抽象不应该依赖于具体的
细节;细节应该依赖于抽象。
高层模块和底层模块容易明白。每一个功能模块的实现都是由原则逻辑组成的,不可
分割的原则逻辑就是底层模块,其再组装就是高层模块。那么,抽象和细节有事怎么一回
事呢?这里的抽象就是java中的抽象类、接口,至于细节则就是具体实现类了。因此上述
的三层含义可以概括如下:
1、模块之间的依赖是通过抽象发生的,实现类并不体现其关系,其依赖关系是通过抽
像类、接口体现的。
2、对于接口、抽象类的编码不应该依赖于实现类。
3、实现类具体的行为是依赖于接口、抽象类的。
通俗的讲就是针对接口编程,而不是针对实现编程。
现在反过来去理解“依赖倒转原则”:传统的过程性系统的设计方法倾向于是高层次的依赖于
低层次的模块;抽象层次依赖于具体层次。倒转原则就是把这个依赖关系倒转过来就是“依赖”
倒转的由来。
具体情况如下:错误的依赖关系
倒转过来之后的关系:
不过怎样做到依赖倒转原则呢?
以抽象的方式耦合是实现依赖倒转原则的关键,这里的耦合关系一共有三种:
● 零耦合:如果两个类之间没有耦合关系,则成为零耦合关系
● 具体耦合:耦合关系发生在两个具体的类之间,经由一个类对
另一个类的直接引用造成的。
● 抽象耦合:耦合发生在一个具体类和一个抽象类之间,较之前者更灵活
因为要实现抽象耦合,就必然涉及到继承,因此里氏替换原则就是其前提。
关于里氏替换原则上一篇文章有介绍。
本文出自 “kiritor” 博客,请务必保留此出处http://kiritor.blog.51cto.com/7400479/1226790
相关文章推荐
- windows重装系统之后需要安装的软件
- 初级程序猿,系统重装之后软件安装心得分享(一JAVA,安卓开发环境安装篇)
- "AV终结者"病毒发作症状及防范措施&和杀毒有关的网页和软件都无法打开或者安装(重装系统后也一样),
- 系统重装之后,装入的软件在注册表中没有了,重新加载到右键菜单,sublime text2
- ubuntu:重装之后软件安装流程
- 重做系统之后的开发软件安装
- SharePoint 2010 卸载之后重装遇到的问题总结:Sharepoint 2010正在进行的安装与之前安装的micrsoft offince 2010 server 产品冲突
- win10+uefi+gpt安装一键GHOST之后无法重启的快速解决方法(无需重装系统无需修复引导)
- 如何制作装机启动盘及重装系统; 如何利用百度云盘下载MATLAB等资料软件 ;如何安装镜像ISO文件
- 重装系统,升级Xcode7之后,发现安装不了CocoaPods
- 程序员更换电脑或重装系统的各种软件安装配置
- 在杭州远程维护半年深圳东莞某大客户的工作审批流程软件组件-异地维护软件系统感受总结
- saltstack-gdlwolf自学总结第五篇(方法案例): pkg模块初始化安装系统常用软件包
- 重装系统,升级Xcode7之后,发现安装不了CocoaPods
- 安装完Ubuntu系统之后更换软件源
- 牛腩购物网 8 整合用户留言 重装系统之后iis7.5 sql2008 vs2010安装顺序,AspNetPager 控件的使用,为什么 anp.StartRecordIndex 总是为1
- 番外篇:因为一个固态导致的——系统重装与JAVA软件环境下载安装配置
- 重装系统后需要安装的三个重要软件
- 关于ubuntu安装之后系统grub被破坏了之后进行修复的总结("error:file not found。 grub rescue")
- 重装系统后各软件的重新安装