思考
细节和抽象是相对的。
应用程序的细节依赖于高级语言的抽象
高级语言的细节依赖于汇编语言的抽象
…
低层的抽象构成了高层的细节,更高层的细节又依赖于本层的抽象
一层层对低层的抽象,构成了我们现在使用的应用程序。
可以说所有系统设计的艺术,归根到底就是抽象封装的艺术。
把不同的细节组合成元件,把元件组合成更大的元件,随着一层层的组装,思路会越来越清晰,因为”细节“被屏蔽了。
设计模式六大原则之依赖倒置原则
描述:
高层模块不应该依赖低层模块,两者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。
核心思想:要面向接口编程,不要面向实现编程。
个人理解
- 细节是多变的,如果高层模块依赖于低层模块,那么低层变化就导致高层也得跟着变化。
- 如果通过接口把两层都抽象出来,高层通过低层的接口调用细节,那么无论低层怎么变化,只要接口没有变化,那么高层就不用变化。
- 抽象不应该依赖细节,抽象只关注我要做什么,实现是细节的工作。同时高层的抽象也依赖的是低层的抽象。
- 细节应该依赖于抽象,细节太多,太杂了,抽象就是对细节对约束。
- 写程序的时候,先把我需要什么想好,再去想实现需求的细节。
- 把层次分清,写的程序就是千层饼,清晰明了。如果所有程序互相调用,挤成一团,牵一发而动全身,那么这个程序就是失败的一坨不明物体。
图解
细节依赖细节
细节依赖抽象