最近,我读了CSDN上面的一篇文章《API:互联网是如何在幕后工作的?》(http://www.csdn.net/article/2015-01-26/2823692)。作者认为,没有API,应用之间的通信将会被扼杀;软件开发者将不断重写并执行相同功能的软件;创新的脚步将会放缓。
确实,在大型的软件系统中,API随处可见。大到一个软件系统,小到几行程序,只要具备了一定的特征,都可以被称作API。那么,什么是API?它有哪些特征呢?
API的定义
在软件系统中,一个成型的(封装好的)、可以实现特定功能的、可供其它模块调用的程序就叫做API。API的形象化表示如图1所示。
图1 API的形象化表示
如图1所示,“特定功能模块”可以被“软件模块A”、“软件模块B”和“软件模块C”调用,那么该“特定功能模块”就是一个API。
API的特征
作为一个API,它有可能被很多的模块调用,其主要特征包括:
第一,其实现的功能具备通用性,很多的软件模块都涉及到该功能。
第二,其功能具备稳定性,已经过了严格的测试。
第三,其执行效率较高,已经过一定的优化。
API的实例
把实现“将字符串中的大写字母变为小写字母”功能的程序写成一个函数,如下所示:
/********************************************************************** *功能描述:将字符串中的大写字母变为小写字母 *输入参数: *pszInStr-输入/输出字符串 iInLen-字符串长度 *输出参数: *pszInStr-输入/输出字符串 *返 回 值: 0-成功 -1-失败 *其它说明: 无 *修改日期 版本号 修改人 修改内容 * --------------------------------------------------------------------- * 20150330 V1.0 Zhou Zhaoxiong 创建 ***********************************************************************/ INT32 StrToLowerCase(UINT8 *pszInStr, UINT32 iInLen) { UINT32 iLoopFlag = 0; if (pszInStr == NULL) // 判断输入字符串是否为空 { printf("StrToLowerCase: Input string is NULL!"); return -1; // 返回-1表示该函数执行失败 } for (iLoopFlag = 0; iLoopFlag
该函数就可以被当成一个API来使用。当软件程序中涉及到需要将大写字母变为小写字母时,都可以直接调用该函数而不需重新编写。
总结
软件代码的模块化是提高编程效率的一个重要的方法,而封装好的一个模块其实就是一个API。善于调用API,不仅能够提高工作效率,而且能够在一定程度上提高软件代码的可读性。因此,作为一名合格的软件开发人员,一定要学会编写并调用API。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)