有个问题一直困惑着我,关于C++封装方面的。
最近在做一个使Qt网络通信的项目,首先是用QTcpServer对象进行监听,当有链接请求时,创建一个QTcpSocket对象来处理链接,这个处理主要是对对方传过来的数据按XML格式进行解析
这里有个疑问:
我是对QTcpSocket进行继承,写了一个自己的套接字类,然后把解析XML数据的代码封装在这个类里面。
但是我看同事是自己创建了一个类,把QTcpSocket作为这个类的成员,然后在这个类里面对XML数据进行解析。
想问一下大家,这两种封装方式,哪种更合理?
不是有一个原则,对,修改关闭对,扩展开放,所以应该是多使用聚合和组合?
相比较,更提倡类的聚合,也就是你同事的方法。
如果数据处理逻辑很多 就单独一个类 然后用组合模式来处理 如果比较简单 你的继承方式也可以
将 XML 的解析放在一个单独的类中,个人认为比较好。
因为类的功能简单,出现问题时容易分析。