减少头文件依赖

减少头文件的依赖。

Pimpl Idiom

《Effective C++》 条款31:将文件间的编译依存关系降至最低

《Effective Modern C++》 Item 22: When using the Pimpl Idiom, define special member functions in
the implementation file.

在其单例模式的基础上,使用 Interface class(工厂模式)而非 Handle class(Pimpl Idiom)更合适