提供给最终用户的编程接口,应该符合以下需求:
- 接口必须提供必要的功能来操纵基础系统。
- 接口一定不能暴露私有实现细节。
- 基础组织的变化必须与客户程序绝缘。
- 与该接口相关的开销一定不能过大。
定义36:handle是一个类,维持一个指向一个对象的指针,该对象可以通过handle类的公共接口编程访问。
原则64:在一个过程接口中,使客户程序只显式的析构那些他们显式创建的对象,可以减少所有权关系上的混乱,并且可以提高性能。
原则65:尽管计算机体系结构和编译器各不相同,但是下列的规则可以帮助系统结构设计师决定:在设计的早期,是否绝缘以及如何绝缘。
---------------------------------------------------------------------- 访问 单独访问的相对开销 ---------------------------------------------------------------------- 借助内联函数通过值 1 借助内联函数通过指针 2 借助非内联、非虚拟函数 10 借助虚拟函数机制 20 创建 单独分配的相对开销 ---------------------------------------------------------------------- 自动化 1.5 动态 100+ ----------------------------------------------------------------------