首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确构造和继承类?

如何正确构造和继承类?
EN

Stack Overflow用户
提问于 2012-05-05 15:05:57
回答 1查看 189关注 0票数 2

我想通过串口写通讯接口。(使用Qt)

我有QSerialPort类,它提供了与串口工作的接口。我继承了QMySerialPort从QSerialPort类,它添加了一些功能和对话框窗口到配置端口。

现在我想写两个协议类:第一低层类、sendPacket、parseData方法等等。第二层: setDeviceID,getDeviceID,onPayload等。

我该怎么做呢?首先想到的是创建一些QSerialInterface元类,它将包括QMySerialPort和2个协议层类的对象。我应该在他们之间建立某种联系。

例如:

协议类: void setPort(QSerialPort *port) { m_port = port;}

sendPacket法: m_port->send(local_data);

但我认为这种方法是很糟糕的。你有什么想法吗?也许我应该在这里使用设计模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-05 16:06:50

也许你应该缩小你问题的范围,以得到一个更有用的答案。尽管如此,有几件事我想指出。

  • 试图将UI代码与业务逻辑分开。更具体地说,在QMySerialPort.
  • Depending中,配置对话框的代码在您在QSerialPort上添加的功能类型上没有任何位置,请记住,您可以通过组合而不是继承来使用QSerialPort,而且在许多情况下(如果不是大多数情况下)前者更可取。一般来说,
  • 应该尽可能地为每个接口/类定义责任。解析数据应该在一个独立的接口中,而不是发送/接收单个数据包。通过这种方式,您可以替换不同的通信介质,同时保持整个协议和处理它的对象unchanged.
  • The setPort方法是可以的,尽管我个人会将port作为参数传递给构造函数。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10463081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档