MVVM(Model-View-ViewModel)软件框架可以有效分离用户界面和业务逻辑,提升代码的可维护性和可测试性。下面我们简要的实现一个MVVM框架示例,并说明其特点和优势。
框架结构
- Model(模型):负责数据和业务逻辑。
- View(视图):负责UI显示,通常是继承自QWidget的类。
- ViewModel(视图模型):充当View和Model之间的桥梁,处理业务逻辑并提供给View所需的数据。
示例代码
Model
// DataModel.h
#ifndef DATAMODEL_H
#define DATAMODEL_H
#include <QObject>
#include <QString>
class DataModel : public QObject {
Q_OBJECT
Q_PROPERTY(QString data READ data WRITE setData NOTIFY dataChanged)
public:
explicit DataModel(QObject *parent = nullptr) : QObject(parent), m_data("") {}
QString data() const {
return m_data;
}
void setData(const QString &data) {
if (m_data != data) {
m_data = data;
emit dataChanged();
}
}
signals:
void dataChanged();
private:
QString m_data;
};
#endif // DATAMODE