小弟我这样的类设计有有关问题吗? 有适合的模式吗?

我这样的类设计有问题吗?? 有适合的模式吗??
class   communicationThread:public   TThread   ,public   communition         //   定义通讯子线程类      
{
        public:
                _fastcall   communicationThread(char*   projectname);
                _fastcall   ~communicationThread(void);
void   _fastcall   Execute(void);
        private:
               

};


class   communicationThread1:public   TThread   ,public   communition         //   定义通讯子线程类      
{
        public:
                _fastcall   communicationThread1(char*   projectname);
                _fastcall   ~communicationThread1(void);
void   _fastcall   Execute(void);
        private:
               
               


};


class   communicationThread2:public   TThread   ,   publiccommunication   communition         //   定义通讯子线程类
{
        public:
                _fastcall   communicationThread2(char*   projectname);
                _fastcall   ~communicationThread2(void);
void   _fastcall   Execute(void);
        private:
               

};


class   communication
{
public:
                _fastcall   communication(char*   projectname);
                _fastcall   ~communication(void);
private:
void   _fastcall   Execute(void);
                unsigned   char   buffer[512];
                unsigned   short   databuffer[800];
                unsigned   long   nBytesWritten   ;
                int   g_wavedata;
                saveData   *sdata   ;

};
communicationThread     communicationThread1   communicationThread2
的对象会在不同的地方使用,   他们   Execute(void);的函数实现不同   其余的都一样/


因此我让他们继承   communication   和TThread     类   .

这样可以吗??

大家都说接口很重要     我这需要设计一个接口类吗??


只有这么多分了   请见谅   大家批批看.




------解决方案--------------------
定义以下接口类:
class communicationI
{
void _fastcall Execute(void)=0;
};
所有的客户端都使用此communicationI对象,用全局函数或工厂模式创建communicationI接口对象。
这样,当你要更改你的实现类时,你的所有客户端代码就可以不修改,如果客户端是在另一程序模块里,还可以不重新编译,真正达到COM里所说的二进制兼容性。
------解决方案--------------------
楼主的以上设计属于经典的Command命令模式,楼主自己看看设计模式方面的书吧。
------解决方案--------------------