首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

下面的代码是不是使用了PIMPL (Private Implementation),它属于什么模式,小弟我看到QT的原码中全是这样用的

2012-03-11 
下面的代码是不是使用了PIMPL (Private Implementation),它属于什么模式,我看到QT的原码中全是这样用的//a

下面的代码是不是使用了PIMPL (Private Implementation),它属于什么模式,我看到QT的原码中全是这样用的
//a.h:

class APrivate;
class A
{
public:
A();
void functionA();
private:
friend class APrivate;
APrivate * const d;
};

//a_p.h
class A
class APriavte
{
public:
APrivate(A *c):q(c){}
void functionA();
private:
A *q;

}; 

我的理解是使用APrivate类可以把接口和实现分开,可以把关于A的实现放到APrivate中,是这样的吗?我要把所有的关于A的方法全都移到APriavte中实现吗?我看到别人的代码在类A中也是实现了一些方法了,我要怎么区分哪些在A中实现,哪些在APrivate中实现呢?求高人指点。


[解决办法]
应该属于桥接模式,将抽象部分与实现部分分离,使得他们两部分可以独立地变化

热点排行