Qt/QML编程学习之心得:设计模式(31)

Qt编程,最终实际上是C++编程,Qml虽然也是一种语言,但是还是资源性的辅助性的,主要是定义一些界面GUI的元素,一些元素特性,一些元素的事件,如clicked,还可以定一些property等,但最终都是为了C++界面逻辑实现上的调用。

C++中引入了一些设计模式在里面,比如sigleton

#define g_myGlobalClass (MyGlobalClass::instance())

这种方式很适合一些全局使用的类,全局类适合做一些共用功能,有点全局变量的意思,需要使用时,g_myGlobalClass 拿过来就可以使用,非常方便。

还有一个模式不得不说,那就是Q_D\Q_Q,也就是d_ptr \ q_ptr,其中d_ptr(主类中访问私有子类成员指针)q_ptr(私有数据类中访问主类指针),这个模式解决了QT 程序的二进制兼容性问题。我理解就是主类提供对外接口,比如setXXX的成员函数和onXXX的slot槽函数,而这些函数使用的变量都放在私有数据类里面,不做任何对外暴露。其定义模式如下:

定义在.h文件,可供外部调用
class MyWidgetPrivate;
class MyWidget : public QObject
{
    Q_OBJECT
public:
    explicit MyWidget(QObject *parent = nullptr);
    void setMyWidgetObject(QObject* qmlObjec

你可能感兴趣的:(qt,qml,设计模式)