设计模式之PIMPL模式

Posted zlyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之PIMPL模式相关的知识,希望对你有一定的参考价值。

PIMPL,即private implementation的缩写,简言之就是类的声明和实现分离。
其作用概括如下:

  1. 类方法定义与函数分离,适合作为API使用
    类的实现对用户来说完全是黑盒,在头文件中声明的类仅包含对用户有用的信息。
  2. 加快编译速度
    a.hpp定义了类A,b.cpp调用了类A的方法。当A的方式实现变动时,传统方式b.cpp需要重新编译
    PIMPL模式下类A的方法实现变动对外透明,b.cpp无需重新编译
  3. 二进制兼容性

使用PIMPL模式需要注意的问题

  1. 类的派生
    由于主类中仅包含私有类的指针,如何优雅的处理子类继承?
  2. 类的复制
  3. 多重继承
    类A采用PIMPL模式实现,类B\C分别时A的子类,类D多重继承自B、C
    .

以上是关于设计模式之PIMPL模式的主要内容,如果未能解决你的问题,请参考以下文章

pimpl idiom

C++ 设计篇之——pimpl 机制

pImpl设计如何将文件编译关系降低

pImpl设计如何将文件编译关系降低

pImpl设计如何将文件编译关系降低

允许并接受用删除标记静态方法吗?