![]()
class IGateWayFactory
{
public:
virtual ~IGateWayFactory(void){}
virtual Device* CreateDevice(void) = 0;
virtual IVRChannel* CreateIVRChannel(void) = 0;
}
class A: public IGateWayFactory
{
public:
A(void);
~A(void);
public:
virtual Device* CreateDevice(void);
virtual IVRChannel* CreateIVRChannel(void);
private:
Device* pDevice_;
IVRChannel* pChannel_;
};
class B: public IGateWayFactory
{
public:
B(void);
~B(void);
public:
virtual Device* CreateDevice(void);
virtual IVRChannel* CreateIVRChannel(void);
private:
Device* pDevice_;
IVRChannel* pChannel_;
};