此问题的解决方案是:使用C++设计模式中的单例模式进行实现。
单例模式(Singleton Pattern)是C++设计模式中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
单例模式需要确保类对象的唯一性:一个类只有一个对象,所有其他类操作时共享该对象。
实现需求:
1、类的构造函数和析构函数全部设置成为私有的(private)
2、在类内设置一个静态的用于获得该类唯一对象的get方法: 如static Network *getNet();
3、设置一个该类的私有的静态指针;如: static Network *net;
网络接口的单例模式实现案列:
头文件:
#ifndef NETWORK_H
#define NETWORK_H
/*
* 网络接口类
* 单例
* 模式
*/
#include <QObject>
#include <QTcpSocket>
class Network : public QTcpSocket
{
Q_OBJECT
private://单例模式:把构造、析构函数设置成为私有的,不让外部去构造实例
explicit Network(QObject *parent = nullptr);
public:
void initNetwork(void); //初始化网络
static Network*