C++里有一种技术叫做句柄类,这种技术有点类似于设计模式中的桥(bridge)设计模式。
引入句柄类的目的:在C++中,当一个文件被修改,或它所依赖的头文件被修改,编译器就要重新编译该文件,在一个大型的项目中,这是个相当漫长的过程。而句柄类是在头文件中把有关实现的东西都隐藏在实现文件中,头文件只剩一个指针,该指针指向一个嵌套类或者结构,该类的定义和成员函数实现都放在实现文件中,只要接口不变,头文件就不要需要动。从而加快了项目编译的速度。
具体实现如图:头文件:
实现文件:
客户程序员只能访问头文件里的公共接口,因此,如果修改了实现中的部分,文件以及依赖此头文件的其他文件不必重新编译。
在我们的代码组织工作中,我们可以为我们的每一个实体类添加一个句柄类,然后给实体类套上句柄类,通过句柄类去调用实体类。