实现指针 (PIMPL) 惯用法向库用户屏蔽实现细节和数据。使用此习惯用法时,通常的做法是在 PIMPL 类而不是公共类中定义公共方法。这就提出了一个问题:为什么不直接实现公共类中的方法?
考虑以下 PIMPL 实现:
#include "cat.h" #include "cat_impl.h" Cat::Cat() { cat_ = new CatImpl; } Cat::~Cat() { delete cat_; } Cat::Purr(){ cat_->Purr(); }
在此示例中,公共类 Cat 充当“外观” " 对于 PIMPL 类 CatImpl,它保存 Purr() 方法的实际实现。 PIMPL 习惯用法有几个优点:
因此,将 PIMPL 习惯用法与 PIMPL 类中定义的公共方法一起使用可以提供解耦、隐藏、封装和代码重用的好处,使其成为开发灵活且可维护的软件库的宝贵习惯。
以上是为什么在实现类中使用带有公共方法的 PIMPL 习惯用法?的详细内容。更多信息请关注PHP中文网其他相关文章!