2 u011175448 u011175448 于 2016.01.15 21:30 提问

关于C++开发的疑问(QT开发)

有个问题一直困惑着我,关于C++封装方面的。

最近在做一个使Qt网络通信的项目,首先是用QTcpServer对象进行监听,当有链接请求时,创建一个QTcpSocket对象来处理链接,这个处理主要是对对方传过来的数据按XML格式进行解析

这里有个疑问:

我是对QTcpSocket进行继承,写了一个自己的套接字类,然后把解析XML数据的代码封装在这个类里面。

但是我看同事是自己创建了一个类,把QTcpSocket作为这个类的成员,然后在这个类里面对XML数据进行解析。

想问一下大家,这两种封装方式,哪种更合理?

4个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2016.01.16 09:26
已采纳

不是有一个原则,对,修改关闭对,扩展开放,所以应该是多使用聚合和组合?

caozhy
caozhy   Ds   Rxr 2016.01.15 23:52

相比较,更提倡类的聚合,也就是你同事的方法。

oyljerry
oyljerry   Ds   Rxr 2016.01.16 09:03

如果数据处理逻辑很多 就单独一个类 然后用组合模式来处理 如果比较简单 你的继承方式也可以

91program
91program   Ds   Rxr 2016.01.16 11:35

将 XML 的解析放在一个单独的类中,个人认为比较好。
因为类的功能简单,出现问题时容易分析。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Netty------对于Netty的十一个疑问
1.Netty 是什么?   Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。   2.使用 Netty 能够做什么? 开发异步、非阻塞的 TCP 网络应用程序; 开发异步、非阻塞的 UDP 网络应用程序; 开发异步文件传输应用程序; 开发异步 HTTP 服
Whatspay将有望充当未来数字货币交易“媒介”桥梁
货币发展大致遵循由自然货币向人工货币的演变,由杂乱形状向规范形状的演变,由地方铸币向中央铸币的演变,由金属货币向纸币交子的演变,由手工印币向机制印币的演变。这是一个由复杂向简单,由杂乱向规则,由繁冗向快捷,由沉重向轻便的发展过程。近几十年来,世界经济进一步呈现全球化趋势,各经济体之间的经济联系更加紧密,全球金融市场跨越了地域的限制,产品种类、交易频率、规模是以前所无法比拟的。纸币已经无法满足这样的...
模板方法模式详解(包含与类加载器不得不说的故事)
模板方法模式详解(包含与类加载器不得不说的故事)                   作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。                   模板方法模式,这是一个在许多优秀的开源项目中LZ见的最多的一个设计模式,也是LZ觉得最为优
qt开发技术
qt开发cqt开发qt开发qt开发qt开发qt开发qt开发qt开发qt开发qt开发
从C++到Qt开发过程
http://www.chengxuyuans.com/Symbian/10479.html 本文介绍的是从C++到Qt开发过程,而对于Qt,想必大家都很熟悉了,Qt 是一个跨平台的 C++ 图形用户界面库,Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。那么先看本文的介绍吧。 在Qt论坛经常看到网友抱怨: QPixmap("dbzhang800.png")
细数Qt开发的各种坑(欢迎围观)
1:Qt的版本多到你数都数不清,多到你开始怀疑人生。从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC。MSVC版本还必须安装对应的VS2005 VS2008 VS2010 VS2013 VS2015,MINGW版本必须安装不小于某个版本号的Mingw编译器。很多人一看官网的下载链接,就蒙圈了,到底应该选择哪一个进行下载开发呢。本人就在
关于Qt开发Mac程序
很多人在选择到底用Qt还是cocoa来写Mac的 GUI。
使用Qt开发iOS应用有何优劣?
现在的公司正在用,谈一下感受。 1.“不是十分成熟”不确切,是十分不成熟。运行非常不稳定,频繁崩溃。 2.标准的posix接口使用都有问题,平台相关的功能(如音视频)必须还是要使用oc处理,再封装成C++静态库,问题很多。 3.qml的稳定性也较差。 使用qml无非是想一套代码打遍天下,但是处理这些问题的成本已经超过了分别使用oc、java开发的成本,得不偿失。个人感觉至少需要几年才能成熟
用Qt开发安卓应用,是不是不成熟?有什么缺陷?
Qt的设计目标是跨平台,而不是在任何平台都能超越原生的GUI框架,这几乎是不可能的。 在 Windows,Linux下可以说Qt是很好的,因为Windows原生的C++ GUI框架太烂,而Linux则干脆就没有。 在MacOS上原始的 cocoa+OC还是不错的,在三大手机平台,原生的GUI框架都很完善,因为厂商们被Apple吊打一顿之后总算学乖了,开始重视GUI框架了。 Qt的优势在于跨平
qt在linux下开发注意事项
在linux上装完qt之后,跑了一个简单的小程序,发现不支持中文,经过上网找资料研究发现,编译QT的时候没有编译字体库,于是重新编译QT, . 首先配置一些编译Qt要用到的程序,使用以下命令: sudo apt-get  install build-essential  libpcap0.8-dev  libx11-dev  libfreetype6-dev  libavahi-go