【发布时间】:2020-10-26 10:34:57
【问题描述】:
我很难在我的一堂课中为信号和插槽给出清晰的名称
Controller控制Device的抽象层:CommunicationAdapter
确实如此:
- 将参数从控制器发送到设备(例如,用户在 UI 上输入值)
- 从设备请求参数(获取初始数据)
- 通知设备中的参数更改(设备上发生事件)
现在我有这样的东西:
class CommunicationAdapter
{
Q_OBJECT
public slots:
//1: slot for Controller to set parameter
void parameterReceived(Parameter parameter);
//2: slot for Controller to request parameter
void parameterRequested(Parameter parameter);
//2: slot for Device to reply on parameter request
void parameterReplied(Parameter parameter);
//3: slot for Device to inform about change of parameter
void parameterUpdated(Parameter parameter);
signals:
//1: signal to Device
void sendParameter(Parameter parameter);
//2: signal to Device for sending parameter request
void requestParameter(Parameter parameter);
//2: signal to Controller for reply on parameter request
void replyParameter(Parameter parameter);
//3: signal to Controller for inform about change of parameter
void updateParameter(Parameter parameter);
};
我发现这个命名丑陋且不清楚
即使我也很难意识到周末之后在做什么
你明白我需要在每一行前面加上 cmets 来解释函数的含义吗?
这里还有什么更清晰的名字?
编辑:
目前我是这样解决的:
class ICommunicationAdapter : public IThreadObject
{
Q_OBJECT
public slots:
void setParameter(Parameter parameter);
void getParameter(Parameter parameter);
void subscribeParameter(Parameter parameter);
signals:
void forwardParameter(Parameter parameter);
void requestParameter(Parameter parameter);
};
欢迎任何反馈/cmets
【问题讨论】:
-
这纯粹是基于意见。我们无法知道您认为什么是“明确的”。恕我直言,将变量命名为
signal_to_device_for_sending_parameter_request并不好,但仍比无意义的名称 + 评论好。 -
Clear 对我来说意味着“有人阅读代码,看看它在做什么”。事实上,它是基于意见的,但我想知道是否存在任何“约定”或“最佳实践”?
-
惯例和最佳实践也是基于意见的 ;)
标签: c++ qt signals-slots