踏云Qt中的设计模式
发布于 2022-06-02 06:26
Qt中使用到的设计模式
1、单例模式
qApp宏返回指向QApplication的单例
2、MVC模型视图控制器框架
模型是应用程序对象、视图是它的屏幕显示、控制器定义了用户界面对用户输入的反应。 Qt的模型视图框架是经典的MVC模型,可以参考QListWidget、QTableWidget、QTreeWidget的源码。
3、反射模式
反射就是指对象成员的自我说明。 Qt元对象模式就是反射模式。QObject拥有QMetaObject、QMetaProperty类就能实现反射模式。
4、命令模式
命令模式:把操作封装成具有公共执行接口的对象。这样就可以把操作放到一个队列中,可以实现取消已经执行的操作。 Qt中QUndoCommand、QRunnable、QAction可以看成是命令模式。
5、MonoState模式
MonoState模式和单例模式相似也是一种保证单一性的模式。单例模式是通过将默认构造函数声明为private限制客户端程序对类的直接new创建实例化,并使用static(类属)的方式来保证类的对象单一,而MonoState模式却是将它的构造函数声明为public,而将类中所有的字段声明为static。换句话说,MonoState并不限制创建对象的个数,但是它的状态却只有一个状态。 Qt中QSetting就是MonoState模式的一种实现。QSetting常用于保存和恢复程序状态。
6、观察者模式
7、组合模式
Qt中由QObject实现的父子类就是组合模式。
8、享元模式
享元模式(Flyweight Pattern)为了避免对同一个对象的多个副本进行存储,使用一个轻量级的类对其进行封装,指向共享的数据,这种类的实现方法就是享元模式。 Qt支持隐式共享、写时复制就是享元模式
————————————————
版权声明:本文为CSDN博主「想年薪百万的it小小鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46543392/article/details/111371969
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材