最近学习了一些框架,很多地方都暗合了这句话。我把我能理解的外延列举一下:
通过indirection避免diretion所需的复杂性。比如通过操作系统访问硬件比直接机器码操作硬件要简单的多。
通过抽象的indirection,达到具体实现的多样性以及可插拔性。比如一个DAO可以用hibernate实现,也可以用ibatis实现,上层不必关心。
“抽象化”不限于OO领域,任何有共性的东西都可以抽象成同一种东西,比如,URL/文件路径都可以抽象成“资源”;JVM也是一个著名的例子。
你表面上在使用一种东西,但在背地里,你的框架却偷偷地通过indirection思想,通过另一种东西来为你服务。这就是“
虚拟化”,它的好处是可以让你用你熟悉的方式去使用服务。举些例子: