“间接”是软件行业中,一个重要的思想。它充斥在软件生涯中所遇到的各种问题。

    【例】最简单的,C++中的指针,它其实就是对象的一个间接

    【例】从更宏大的层面上来说,软件的诞生本身就是一种间接思想的应用

    • 计算机诞生初期,是没有软件的。人和计算机硬件直接打交道
    • 软件的诞生,其实就是人和硬件之间产生了一个间接层
    • 人操控软件,间接的去操控硬件

    间接,实质上是稳定和变化的剥离

    • 把软件中稳定的部分剥离出来,变成操作系统,操作系统更稳定,应用软件变化更大
    • 后来发现,在操作系统和软件之间又有东西能够稳定下来。比如说,中间件、虚拟机,这又是一层间接层

    所以说,间接思想,在软件中是非常频繁应用的。当你遇到问题的时候,没有办法的时候,想想“间接”,往往就会有思路

    设计模式中就很多体现

    1. 有一位软件界大师说:软件设计思想的关键词,就是间接
    2. 依赖倒置原则。本来是A依赖B,后来做了一层间接层,A依赖IB这个接口,然后B依赖IB接口