C++的接口与非侵入式接口 https://zhuanlan.zhihu.com/p/76862132
使用Imp模式避免c++中的改类成员数据导致大规模重新编译 https://blog.csdn.net/killer4747/article/details/81195403
C++ Pimpl惯用法(桥接模式特例) https://www.cnblogs.com/fortunely/p/16391686.html
主要是为了分离接口和实现,如果放在一起,实现变动时,所有引用接口的其他文件都会重新编译一遍