![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
队长-Leader
这个作者很懒,什么都没留下…
展开
-
设计模式——状态模式
使用QT新建Widget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QDebug>class Context;class State {public: virtual void doAction(Context* context)=0;public: virtual void toString()=0;public: virtual ~State()原创 2021-07-28 22:45:24 · 221 阅读 · 0 评论 -
设计模式——单例模式
使用QT新建控制台工程。main.cpp如下:#include <QCoreApplication>#include <QDebug>class Singleton { private: Singleton(); private: static Singleton* m_singleton; public: static Singleton* getInstance();};Singleton* Singleton::m_singleto原创 2021-07-27 23:20:41 · 119 阅读 · 0 评论 -
设计模式——DAO模式
使用QT,新建QWidget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QList>#include <QDebug>namespace Ui {class Widget;}class Student {private: QString m_name;public: QString getName(); voi原创 2021-07-22 23:13:37 · 415 阅读 · 1 评论 -
设计模式——MVC模式
使用QT,新建Qml(qt quick)工程。main.qml如下:import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 300 height: 300 title: qsTr("Hello World") ListModel { // Model id : listModel原创 2021-07-20 22:47:28 · 317 阅读 · 2 评论 -
设计模式——策略模式
使用QT,新建QWidget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QDebug>namespace Ui {class Widget;}class TaxStrategy {public: virtual double Calculate(QVariantMap var) = 0; virtual ~TaxStrategy();原创 2021-07-20 22:33:54 · 175 阅读 · 0 评论 -
设计模式——抽象工厂
使用QT,新建QWidget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QDebug>namespace Ui {class Widget;}class DbConnectInterface { // 抽象类};class DbCommandInterface {};class DbDataReaderInterface {};cla原创 2021-07-19 23:07:13 · 144 阅读 · 0 评论 -
设计模式——工厂方法
使用QT,新建QWidget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QDebug>namespace Ui {class Widget;}class SplitterInterface { // 抽象类public: virtual void split()=0; virtual ~SplitterInterface();};原创 2021-07-14 23:44:08 · 146 阅读 · 2 评论 -
设计模式——观察者模式
新建QWidget工程。widget.h如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QDebug>namespace Ui {class Widget;}class ProgressInterface {public: virtual void DoProgress(int value)=0; virtual ~ProgressInterface();}原创 2021-07-14 00:16:43 · 129 阅读 · 0 评论 -
设计模式——模板方法
未使用设计模式时,代码如下:#include <QCoreApplication>//程序库开发人员class Library{public: void Step1(){}};//应用程序开发人员class Application{public: void Step2(){}};int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Library lib原创 2021-07-08 23:03:03 · 124 阅读 · 0 评论