自己的一个想法:
#include <iostream>
#include <memory>
using namespace std;
template<class T>
class SubscribeEvent
{
public:
virtual char* Event(T aT)=0;
};
class MsgHandler
{
public:
virtual void Handler(char* apAnswer)=0;
};
template<class T>
class MsgSender
{
public:
void SendMsg()
{
char* lpAnswer = m_pSubscribeEvent->Event();
MsgHandler->Handler(lpAnswer);
}
private:
SubscribeEvent<T>* m_pSubscribeEvent;
MsgHandler* m_pMsgHandler;
};
int main()
{
return 0;
}
有待改进,传模板是不是有点复杂啊。在用的时候。
其实如果是接口,那封装为char*的形式就行了,自己编解码。
#include <iostream>
#include <memory>
using namespace std;
class SubscribeEvent
{
public:
virtual char* Event(char* apMsg)=0;
};
class MsgHandler
{
public:
virtual void Handler(char* apAnswer)=0;
};
class MsgSender
{
public:
void SendMsg(char* apMsg)
{
char* lpAnswer = m_pSubscribeEvent->Event(apMsg);
m_pMsgHandler->Handler(lpAnswer);
}
private:
SubscribeEvent* m_pSubscribeEvent;
MsgHandler* m_pMsgHandler;
};
int main()
{
return 0;
}