大卫·惠勒的格言中"间接水平"是什么意思?

And*_*onu 28 computer-science indirection

我在一本书中读过这句话:

计算机科学中没有任何问题无法使用另一层次的间接解决.

有人可以解释一下吗?"间接水平"是什么意思?

根据我的理解,间接是使用值的指针而不是值本身的奇特名称.请为我澄清一下.

Lee*_*dor 34

从最广泛的意义上说,"间接"正在使用其他东西.

因此,使用值而不是值的指针的示例在一个级别上符合此定义.指针是东西,值是其他东西.

通常这是范围更大的东西:

  • 使用网站以图形方式显示基于XML的服务生成的数据.在这里,网站是一个东西,隐藏在它背后的是数据,这是其他东西.
  • 使用操作系统访问显示屏.这是两层,至少是间接的.操作系统使用屏幕驱动程序.一件事用其他东西.然后屏幕驱动程序直接与屏幕硬件对话,导致它在这里和那里产生微小的光点.驱动程序是下一个使用硬件其他东西的东西.
  • 一个API处理高级别的事情并且API在较低级别处理相同的事情并不罕见.同样,在低级API之上添加了间接级别,我们将其称为新的改进API.

也许最后一个例子解释了这一切的"原因".

当我们使用某些东西时,我们掌握它并学习如何将其抽象到更高的抽象层次,因此需要一个新的间接层,我们可以通过将一些工作卸载到新的API来更快地解决更大的问题.


Pau*_*eau 6

间接的潜在大优点之一是减少了耦合。这是另一种说法,即应该对事物进行适当的分隔。从长远来看,这通常对测试,可维护性和灵活性有很大帮助。

例如,如果您的应用程序需要读取一些持久化数据,而不是具有在何处(以及如何)读取数据的特定知识,那么您可以将其隔离(将读取的数据放入方法中),然后将其隔离在整个应用程序中让应用程序的所有其他部分调用该方法来获取数据,而不是应用程序的每个部分本身都必须处理这些细节。