1.问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。
2.解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。(其实换成接口,可能下面的很多代码都不需要变了,如果还是A,B的对象实例,那么下面的代码可能会发生修改。)
3.依赖倒置原则针对的是接口编程。
4.对于容易发生的变化的地方,提供接口,接口具有高度抽象性,让其进行接收,这样就可以极大的减少修改高层模块中的代码。
上面的仅仅是纯概念本身的理解:
以下是货真价实的理解。
继承的作用是复用前人写的代码
多态的作用是前人写好的框架,该框架可以调用后来人写好的代码。这正是设计模式的精髓。想想也是。(这就是可扩展,这是不是很厉害)。
举例说明:
假设计算机有3大重要部件:cpu,硬盘,内存条
为了能够让计算机能够和三大部件进行解耦合,意思就是计算机可以安装任何型号的cpu,硬盘,内存条。设计原则就是让计算机依赖三大部件(高层依赖于抽象层),让实现层依赖于抽象层,各种类型的cpu去继承抽象层,这样达到了高层和实现层的解耦合,也让实现层和实现层之间解耦合。
转载于:https://blog.51cto.com/1464490021/1856123