设计模式在Qt中的应用

目录
1. 观察者模式
2. 工厂模式
3. 单例模式
4. 命令模式
5. 适配器模式
6. 组合模式
7. 策略模式
8. 装饰器模式
9. 职责链模式
总结
Qt 框架本身广泛采用了多种设计模式,开发者也可以基于这些模式构建更灵活、可维护的应用程序。以下是常见设计模式在 Qt 中的具体应用场景及示例:
1. 观察者模式
模式作用:对象间定义一对多的依赖关系,当一个对象状态改变时,所有依赖它的对象自动得到通知。
Qt 应用: 信号与槽机制(Signals and Slots) 是观察者模式的经典实现。
信号(Signal):被观察者(Subject)触发事件。
槽(Slot):观察者(Observer)的事件处理函数。
示例:按钮点击事件处理
QPushButton *button = new QPushButton("Click me");
QObject::connect(button, &QPushButton::clicked, []() {
qDebug() << "Button clicked!";
});
2. 工厂模式
模式作用:通过工厂类创建对象,隐藏具体类的实例化逻辑。
Qt 应用:
QWidget 组件创建:通过基类指针创建具体子类对象(如 QPushButton、QLabel)。
QML 组件动态加载:通过 Loader 组件按需创建界面元素。
示例:工厂方法创建按钮
QWidget* createWidget(const QString &type) {
if (type == "button") return new QPushButton;
else if (type == "label") return new QLabel;
return nullptr;
}
3. 单例模式
模式作用:确保一个类只有一个实例,并提供全局访问点。
Qt 应用:
QApplication:管理全局应用程序状态,保证单实例。
QSettings:统一管理应用程序配置。
示例