C++ API设计—— API特征
APT特征:优质的API应该设计精巧且实用性强,它不仅能带来愉悦的使用体验,且能与各种应用程序完美融合,甚至让使用者感觉不到其存在。
问题域建模:
对问题域进行很好的抽象。
隐藏实现细节:
1)物理隐藏(声明与定义):将内部细节(.cpp)与公有接口(.h)分离,存储在不同的文件中。
2)逻辑隐藏(封装):将API的公有接口与其底层实现分离的过程。
最小完备性:若无必要,勿增实体
1)不要过度承诺
精简API中公有的类和函数
2)谨慎添加虚函数
避免将函数声明为可以重写的函数(虚的),除非你有合理且迫切的需求。
3)便捷API
基于最小化的核心API,以独立的模块或库的形式构建便捷API
易用性:
1)可发现性:通过API自身明白如何使用它们
2)不易误用:使用枚举类型替代布尔类型,提高代码的可读性
3)一致性:使用一致的函数命名和参数顺序
4)正交:减少冗余,增加独立,函数没有副作用
5)健壮的资源分配:智能指针
6)平台独立:不要将平台相关的#if或#ifdef语句放在公共的API中,因为这些语句暴露了实现细节,并使API因平台而异
松耦合:
稳定的、文档详细的,且经过测试的API:
API设计,祝愿你把代码写成艺术。
6/30/2017 3:05:17 PM