当前位置: 首页 > news >正文

做家教用什么网站建设网站的题目

做家教用什么网站,建设网站的题目,旅游网站html5代码,网站 营销方案单例模式是什么#xff1f; 单例模式是一种创建型的软件设计模式。通过单例模式的设计#xff0c;使得创建的类在当前进程中只有唯一一个实例#xff0c;并提供一个全局性的访问点#xff0c;这样可以规避因频繁创建对象而导致的内存飙升情况。 单例模式有三个要点 私有化…单例模式是什么 单例模式是一种创建型的软件设计模式。通过单例模式的设计使得创建的类在当前进程中只有唯一一个实例并提供一个全局性的访问点这样可以规避因频繁创建对象而导致的内存飙升情况。 单例模式有三个要点 私有化构造函数这样外界就无法自由地创建类对象进而阻止了多个实例的产生。类定义中含有该类的唯一静态私有对象静态变量存放在全局存储区且是唯一的供所有对象使用。用公有的静态函数来获取该实例提供了访问接口。 基础代码  h文件 // // Created by qiaowei on 2023-12-25. //#ifndef RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_H #define RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_H#include QObjectnamespace handler {class MainWindowHandler : public QObject{public:virtual ~MainWindowHandler() override;static MainWindowHandler* instance();private:explicit MainWindowHandler(QObject* parent nullptr);private:/*** date 2023-12-25 19:32* author qiao wei* brief MainwindowHandler实例指针。static函数只能访问静态成员变量或函数所以必须为static*/static MainWindowHandler* instance_;};} // handler#endif //RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_Hcpp文件 // // Created by qiaowei on 2023-12-25. //#include main_window_handler.hnamespace handler {// 静态非const整型成员变量必须在类外定义。MainWindowHandler* MainWindowHandler::instance_ nullptr;MainWindowHandler::MainWindowHandler(QObject* parent) : QObject(parent) {}MainWindowHandler::~MainWindowHandler() {}MainWindowHandler* MainWindowHandler::instance() {if (nullptr instance_) {instance_ new MainWindowHandler{nullptr};}return instance_;}} // handler 单例模式一般分为懒汉式和饿汉式。 单例模式的基础代码不符合线程安全因此引出了懒汉式和饿汉式单例模式。懒汉式指全局的单例实例在第一次被使用时构建。饿汉式全局的单例实例在类装载ClassLoader时构建(饿汉式单例性能优于懒汉式单例。 懒汉式和饿汉式的区别 懒汉式默认不会实例化外部什么时候调用什么时候new。饿汉式在类加载的时候就实例化并且创建单例对象。懒汉式是延时加载在需要的时候才创建对象而饿汉式是在虚拟机启动的时候就会创建。懒汉式在多线程中是线程不安全的而饿汉式是不存在多线程安全问题的。 懒汉单例模式需要时再实例化单例对象 懒汉模式中使用QMutexQMutexLocker进行同步锁。 h文件 // // Created by qiaowei on 2023-12-25. //#ifndef RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_H #define RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_H#include QObjectnamespace handler {class MainWindowHandler : public QObject{public:/*** date 2023-12-25 21:54* author qiao wei* version 1.0* brief 拷贝构造函数。删除拷贝构造防止对象通过拷贝构造创建对象。* param* return* throws*/MainWindowHandler(const MainWindowHandler value) delete;virtual ~MainWindowHandler() override;/*** date 2023-12-25 21:56* author qiao wei* version 1.0* brief 赋值操作符。删除赋值操作符防止简单类型通过赋值创建对象。* param* return* throws*/MainWindowHandler operator(const MainWindowHandler value) delete;/*** date 2023-12-25 21:47* author qiao wei* version 1.0* brief 返回MainWindowHandler*指针的static函数。* param* return Mainwindow*指针。* throws*/static MainWindowHandler* instance();private:explicit MainWindowHandler(QObject* parent nullptr);private:/*** date 2023-12-25 19:32* author qiao wei* brief MainwindowHandler实例指针。*/static MainWindowHandler* instance_;static QMutex mutex_;};} // handler#endif //RADARDATACONTROLLER_MAIN_WINDOW_HANDLER_Hcpp文件 // // Created by qiaowei on 2023-12-25. //#include QMutexLocker #include QMutex #include main_window_handler.hnamespace handler {// 静态成员在类外初始化。MainWindowHandler* MainWindowHandler::instance_ nullptr;QMutex MainWindowHandler::mutex_;MainWindowHandler::~MainWindowHandler() {delete instance_;instance_ nullptr;}MainWindowHandler* MainWindowHandler::instance() {// 第1次检查实例化单例对象后就不会再进入加锁逻辑。if (nullptr instance_) {// 加同步锁。QMutexLocker mutex_locker(mutex_);// 第2次检查可能2个线程同时通过第1次检查1个线程获得锁时可能另外1个线程已经实例化单体。if (nullptr instance_) {instance_ new MainWindowHandler{nullptr};}}return instance_;}MainWindowHandler::MainWindowHandler(QObject* parent) : QObject(parent) {}} // handler 饿汉单例模式一开始就初始化单例对象 饿汉模式一 饿汉模式一缺点不会调用析构函数需要手动delete。 h文件 // // Created by qiaowei on 2023-12-25. //#ifndef RADARDATACONTROLLER_EAGER_SINGLETON_H #define RADARDATACONTROLLER_EAGER_SINGLETON_H#include QObjectnamespace handler {class EagerSingleton : public QObject{public:virtual ~EagerSingleton() override;static EagerSingleton* instance();private:explicit EagerSingleton(QObject* parent nullptr);private:static EagerSingleton* instance_;};} // handler#endif //RADARDATACONTROLLER_EAGER_SINGLETON_Hcpp文件 // // Created by qiaowei on 2023-12-25. //#ifndef RADARDATACONTROLLER_EAGER_SINGLETON_H #define RADARDATACONTROLLER_EAGER_SINGLETON_H#include QObjectnamespace handler {class EagerSingleton : public QObject{public:virtual ~EagerSingleton() override;static EagerSingleton* instance();private:explicit EagerSingleton(QObject* parent nullptr);private:static EagerSingleton* instance_;};} // handler#endif //RADARDATACONTROLLER_EAGER_SINGLETON_H饿汉模式二 h文件 // // Created by qiaowei on 2023-12-25. //#ifndef RADARDATACONTROLLER_EAGER_SINGLETON_2_H #define RADARDATACONTROLLER_EAGER_SINGLETON_2_H#include QObjectnamespace handler {class EagerSingleton2 : public QObject{public:static EagerSingleton2* instance();virtual ~EagerSingleton2();private:explicit EagerSingleton2(QObject* parent nullptr);private:static EagerSingleton2 eager_singleton_;};} // handler#endif //RADARDATACONTROLLER_EAGER_SINGLETON_2_Hcpp文件 // // Created by qiaowei on 2023-12-25. //#include eager_singleton_2.hnamespace handler {EagerSingleton2 EagerSingleton2::eager_singleton_;EagerSingleton2* EagerSingleton2::instance() {return eager_singleton_;}EagerSingleton2::~EagerSingleton2() {}EagerSingleton2::EagerSingleton2(QObject *parent) : QObject(parent) {}} // handler 饿汉模式总结 由于在定义静态变量的时候实例化单例类因此在类加载的时候就已经创建了单例对象可确保单例对象的唯一性。 饿汉模式缺点 无论系统运行时是否需要使用该单例对象都会在类加载时创建对象资源利用效率不高。
http://www.zqtcl.cn/news/869488/

相关文章:

  • 深圳专业网站建设制作价格低品牌网站建设网站
  • 织梦体育网站模板临沂建站程序
  • 重庆网站设计最佳科技好听的网络公司名字
  • 如何在人力资源网站做合同续签贵阳网站建设搜王道下拉
  • 多个域名的网站北京注册公司流程
  • 网站建站对象定制网站系统
  • 阳光家园广州网站网站公司怎么做的好
  • wordpress网站音乐放不全阳山做网站
  • 橙色企业网站源码网站下载软件
  • 满足客户的分销管理系统seo搜索引擎优化技术教程
  • 链接网站制作住房建设部官方网站专家注册
  • 北京保障性住房建设投资中心网站以网络营销为主题的论文
  • 数字火币交易网站开发网站建设设计图图片
  • 惠民建设局网站东莞公司建设网站
  • 网站建设与维护教学课件煤炭网站建设规划书
  • 北京建设网站有哪些公司黄陌陌网站怎么做
  • 视频网页制作教程网站优化防范
  • 做优化网站注意什么开发者模式开着好不好
  • 网站顾客评价网站中怎么做网站统计
  • 网站建设安全措施表白网站是怎么做的
  • 一个服务器可以做几个网站百度北京公司地址全部
  • 武侯区网站建设哪里好点个人社保缴费比例是多少
  • 创建属于自己的网站定制应用软件有哪些
  • 网站建设类岗位建设工程施工合同示范文本2023最新版
  • 建站设计公司wordpress 跨域 cros
  • 做网站的公司哪好工程设计东莞网站建设技术支持
  • 虹口网站开发开发公司设计管理部绩效考核
  • 网站改版升级通知国外服务器公司有哪些
  • 做网站的s标的软件深圳网站建设 湖南岚鸿
  • 设计网站建设的合同书公司装修合同范本