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

copyright技术支持 东莞网站建设网络推广外包公司排名

copyright技术支持 东莞网站建设,网络推广外包公司排名,wordpress移动端页面,怎样提高网站流量目录单例模式应用场景实现步骤涉及知识点设计与实现单例模式 通过单例模式的方法创建的类在当前进程中只有一个实例; 应用场景 配置管理 日志记录 线程池 连接池 内存池 对象池 消息队列 实现步骤 将类的构造方法定义为私有方法 定义一个私有的静态实例 提供一…

目录

  • 单例模式
  • 应用场景
  • 实现步骤
  • 涉及知识点
  • 设计与实现

单例模式

通过单例模式的方法创建的类在当前进程中只有一个实例;

应用场景

配置管理
日志记录
线程池
连接池
内存池
对象池
消息队列

实现步骤

将类的构造方法定义为私有方法
定义一个私有的静态实例
提供一个公有的获取实例的静态方法

涉及知识点

static静态成员数据
static静态成员函数
template模板类
friend友元类

设计与实现

常用实现
模板实现
线程安全

main.c

#include"Singleton.h"
using namespace mySingleTon;
void test() {//A::instance()->show();//B::instance()->show();singleTon<A>::instance()->show();singleTon<B>::instance()->show();
}

A.h

//#pragma once 
//#include<string>
//#include<iostream>
//using namespace std;
//
//class A {
//
//public:
//    static A* instance() {
//        if (m_instance == nullptr) {
//            m_instance = new A();
//        }
//        return m_instance;
//    }
//    void show() {
//        cout << mName << endl;
//    }
//private:
//    A():mName("A"){}
//    A(const A&);
//    ~A();
//    A & operator=(const A&);
//private:
//    static A* m_instance;
//    string mName;
//};
//A* A::m_instance = nullptr;
#pragma once 
#include<string>
#include<iostream>
#include"Singleton.h"
using namespace std;class A {friend class mySingleTon::singleTon<A>;
public:void show() {cout << mName << endl;}
private:A():mName("A"){}A(const A&);~A();A & operator=(const A&);
private:static A* m_instance;string mName;
};
A* A::m_instance = nullptr;

B.h

/*
#pragma once
#include<string>
#include<iostream>
#include"Singleton.h"
using namespace std;class B {friend class mySingleTon::singleTon<B>;
public:static B* instance() {if (m_instance == nullptr) {m_instance = new A();}return m_instance;}void show() {cout << mName << endl;}
private:B() :mName("B") {}B(const B&);~B();B& operator=(const B&);
private:static B* m_instance;string mName;
};
B* B::m_instance = nullptr;
*/
#pragma once
#include<string>
#include<iostream>
#include"Singleton.h"
using namespace std;class B {friend class mySingleTon::singleTon<B>;
public:void show() {cout << mName << endl;}
private:B() :mName("B") {}B(const B&);~B();B& operator=(const B&);
private:static B* m_instance;string mName;
};
B* B::m_instance = nullptr;

懒汉式
多线程时,是线程不安全的
Singleton.h

#pragma once
namespace mySingleTon {
template<typename T>
class singleTon {
public:static T* instance() {if (m_instance == nullptr) {m_instance = new T();}return m_instance;}private:singleTon() {};singleTon(const singleTon&){}~singleTon(){}static T* m_instance;singleTon<T>& operator =(const singleTon<T>);};
template<typename T>
T* singleTon<T>::m_instance = nullptr;};

饿汉式
多线程时,是线程安全的
Singleton.h

#pragma once
namespace mySingleTon {
template<typename T>
class singleTon {
public:static T* instance() {if (m_instance == nullptr) {m_instance = new T();}return m_instance;}private:singleTon() {};singleTon(const singleTon&){}~singleTon(){}static T* m_instance;singleTon<T>& operator =(const singleTon<T>);};
template<typename T>
T* singleTon<T>::m_instance = new singleTon<T> ;
};
http://www.hrbkazy.com/news/23193.html

相关文章:

  • 专业做视频的网站有哪些内容百度健康人工客服电话24小时
  • 免费建立网站软件推广app的软文案例
  • 罗田住房和城乡建设局网站求网址
  • 东莞市住房福州seo扣费
  • 犀牛云 做网站电子网址怎么创建
  • 汕头市委网站两学一做如何优化网络速度
  • 网站规划建设方案农业绿化风格当前疫情十大热点
  • 北京东城网站建设公司变现流量推广app
  • 怎样做代刷网站长网络广告的收费模式有哪些
  • 网站开发与应用专业微信推广引流方法
  • 做毕业设计做网站真实数据来源市场调研报告范文大全
  • 校园网站建设依据企业营销策划书如何编写
  • wordpress 微信授权百度seo推广
  • 如何申请免费域名做网站线上营销活动主要有哪些
  • 网站建设书籍推荐网站推广方案范文
  • 盐城企业做网站多少钱近期网络舆情事件热点分析
  • 做网站例子手机免费发布信息平台
  • 外包加工哪个网站最靠谱北京seo
  • 做网站简历怎么写手机免费建网站
  • 哪个网站可以找人做清洁优化关键词的作用
  • 网站seo课设企业seo顾问服务
  • 做网站咋赚钱app开发工具
  • 动态网站开发技术的需求分析最好的优化公司
  • 炫酷html5网站模板网上seo研究
  • 怎么删除建站网站程序百度指数的需求指数
  • 苏州建设局官方网站天天外链
  • 图片制作工具英文seo外链
  • 网站防止复制代码公司员工培训方案
  • o2o的含义seo优化是利用规则提高排名
  • 做图片站 把图片放到其它网站可以吗广告主资源哪里找