我正在使用Model-View-Presenter模式实现应用程序。
虽然演示者可以简单地转发一些信号(只需简单地connect
在模型和视图之间进行适当的信号和缝隙处理),它仍然需要对某些信号进行一些较小的处理,例如>
Presenter::Presenter(Model* model, View* view, int treshold)
: m_model(model), m_view(view), m_criticalValueTreshold(treshold)
{
// can directly connect those
connect(m_model, &Model::valueChanged, m_view, &View::updateValue);
// need to check value in case it exceeds the treshold to tell user
connect(m_model, &Model::criticalValueChanged, this, [this](int criticalValue),
{
m_view.updateCriticalValue(value);
if (criticalValue > m_criticalValueTreshold)
m_view.notifyUser();
});
}
我可以直接使用lambda,但是看到我也如何访问Presenter类的成员值,我忍不住想知道是否不应该将lambda设置为适当的(私有)函数和{{1} }代替。
这里(或一般而言)有什么更好的方法?