依赖倒置原则
2016-01-02 18:23
197 查看
问题由来:
类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:
将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。例子:PC里如果CPU、内存、硬盘都需要依赖具体的主板,主板一坏,所有的部件都没用了,者显然不合理,反过来,如果内存坏了,也不应该造成其他部件不能用才对。而如果不管高层模块还是低层模块,它们都依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他受到影响。
定义:
a.高层模块不应该依赖低层模块。两个都依赖抽象。b.抽象不应该依赖细节,细节应该依赖抽象。
应用:
在实际编程中,我们一般需要做到如下3点:1、低层模块尽量都要有抽象类或接口,或者两者都有。
2、变量的声明类型尽量是抽象类或接口。
3、使用继承时遵循里氏替换原则。
相关文章推荐
- Swift供选链接
- Jquery DatePicker基本使用方法
- JVM 虚拟机内存深入探究
- C语言数组与字符串初始化
- TabLayout和ViewPager的联动使用
- Linux学习笔记(1)
- java类继承总结一 父类类型与子类类型之间的转化问题(转)
- BCache源码浅析之四分配管理与Journal
- 解决Ubuntu wireshark找不到Interface问题
- android二维码图片生成模糊的问题
- UISegmentControl
- 动态数组分配(C语言)
- Hadoop实战(二) 搭建Hadoop集群
- mysql优化常识
- Hibernate之一对多(多对一)
- QT for IOS 点滴
- Mac上安装hadoop
- 【Android进阶】如何写一个很屌的动画(1)---先实现一个简易的自定义动画框架
- ifconfig命令
- java重写Object类方法