将文件键的编译依存关系降至最低
如果使用object reference或object pointers可以完成任务,就不要使用objects。你可以只依靠一个类型声明式就定义出指向该类型的references和pointers;但如果定义某类型的objects。就需要用到该类型的定义式。
尽量以class声明式替代class定义式。当你声明一个函数而它用到某个class时,并不需要该class 的定义;即使函数以by value方式传递该类型的参数(或者返回值)。
为声明式和定义式提供不同的头文件。
请记住:
- 支持"编译依存性最小化"的一般构想是:相依于声明式,不要相依与定义式。基于此构想的两个手段是Handle classes和Interface classes。
- 程序库头文件应该以"完全且仅有声明式"形式存在。这种做法不论是否涉及到templates都适合。