大家好,最近在写一个聊天程序,能够简单的文字对话。现在在完善周边功能,比如登录登出,发送附件,检验掉线等。现在遇到一个问题,就是随着message类型增多,服务器和客户端的逻辑也越来越复杂,所以想把message单独封装成一个类。我的想法是server类只负责数据包的传输,数据的解析工作最好全部由message类完成。这样既降低了server类的复杂度,后期新增新的消息类型也比较容易添加。
我想使用继承来实现message类,比如基类为
class Messagebase
{
void *GenerateMsg();//这里该如何传入数据,因为每个子类需要的数据类型都不一样,所以没法写出一个通用的函数。
void ParaseMsg(void *data, int len);
}
其中我比较头疼的是数据在server和message类之间如何传递,为了实现上述类中的函数统一性,最好在类设计上不要暴露数据细节,最好是通用的。
大家有没有好的想法,请告诉我,或者你们以前是怎么去做的,我们一起讨论讨论吧。
要是能得到灵感,比有重赏。