首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

框架设计的核心准则之一:indirection

2012-11-09 
框架设计的核心原则之一:indirection有句话叫做: All problems in computer science can be solved by an

框架设计的核心原则之一:indirection
有句话叫做: "All problems in computer science can be solved by another level of indirection"

最近学习了一些框架,很多地方都暗合了这句话。我把我能理解的外延列举一下:

  1.通过indirection避免diretion所需的复杂性。比如通过操作系统访问硬件比直接机器码操作硬件要简单的多。

  2.通过抽象的indirection,达到具体实现的多样性以及可插拔性。比如一个DAO可以用hibernate实现,也可以用ibatis实现,上层不必关心。“抽象化”不限于OO领域,任何有共性的东西都可以抽象成同一种东西,比如,URL/文件路径都可以抽象成“资源”;JVM也是一个著名的例子。

  3.你表面上在使用一种东西,但在背地里,你的框架却偷偷地通过indirection思想,通过另一种东西来为你服务。这就是“虚拟化”,它的好处是可以让你用你熟悉的方式去使用服务。举些例子:
      a.你以为你的程序跑在一台普通电脑上,实际上那不过是个VMWare而已
      b.看上去你写的SQL都基于单个数据库,实际上你的DB早就被分库、分表的面目全非了,只不过你的架构师自写了一套jdbc driver,屏蔽了这些复杂性而已。

热点排行