C++-实现私有化PIMPL[Private Implementation]

1、定义

 

 

 

 实现私有化[PIMPLI,Private Implementation]:将一个类的所有成员变量都放进一个单独的类[或结构体]中定义,将实现进行私有化。如此可将类的接口与实现进行解耦。而通过查看Qt源码的实现,绝大多数Qt类都使用实现私有化的方式。

 

 

 2、优点

①、当成员变量特别多的时候接口文件不会显得臃肿,可读性强;
②、在接口确定好之后,对类的任何修改[增减成员变量、修改实现函数]都不会影响接口,完全解耦;
③、由于使用接口的文件只需要包含头文件,故我们对接口的实现进行修改后,使用接口文件不会再进行编译[O(n)],只需要编译实现的cpp文件[O(1)],这在大工程中非常有用。

3、缺点

①、增加代码开销;
②、对私有化类一般进行new,故事后需要delete,有内存泄漏的风险,不过如果使用智能指针管理私有类对象则不存在此问题。

 

posted @ 2022-02-27 12:07  朱小勇  阅读(152)  评论(0编辑  收藏  举报