http://blog.csdn.net/horkychen/article/details/46612899
从架构设计的角度来看(所谓的组成论),软件系统就是模块和接口。
模块(层次/组件)决定分工,接口决定交互。
API就是接口的定义。模块间并不需要关心其它模块的实现,只需要了解如何进行协作即可。
这样将复杂度分散到各个模块之中,使得整体系统更为可控。
而API的本质,就是提供给模块开发者使用的接口,是给”人(Programmer)”用的。
API的设计任务的核心就是保证使用者以较低的成本,正确的使用接口,驱动模块完成他们的业务。