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

建设独立网站需要什么时候电脑系统优化软件

建设独立网站需要什么时候,电脑系统优化软件,网站建设公司哪家好 都来磐石网络,深圳网站高端建设目录单例模式应用场景实现步骤涉及知识点设计与实现单例模式 通过单例模式的方法创建的类在当前进程中只有一个实例; 应用场景 配置管理 日志记录 线程池 连接池 内存池 对象池 消息队列 实现步骤 将类的构造方法定义为私有方法 定义一个私有的静态实例 提供一…

目录

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

单例模式

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

应用场景

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

实现步骤

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

涉及知识点

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.dinnco.com/news/81663.html

相关文章:

  • 烟台海阳市专业做网站2022最近比较火的营销事件
  • tomcat做网站并发产品软文代写
  • 有没有做公章的网站电子商务专业就业方向
  • 网站上的3d怎么做的seo薪酬如何
  • 做网站推广需要做什么北京全网营销推广公司
  • 兰州网站做的好点的公司常见的网络营销工具
  • 做个公司网站一般多少钱seo扣费系统
  • 建设网站开通网线多少钱竞价排名广告
  • 南京直销网站开发百度电话客服24小时
  • 烟台智能建站模板天津网站建设公司
  • 外包做网站要十几万谷歌广告联盟怎么做
  • wordpress增加百度收录seo外链资源
  • 台州网站建设方案托管广告投放平台都有哪些
  • 招聘网站可以做劳务派遣吗seo标题优化
  • 成都app开发seo的工作原理
  • 胶南市城乡建设局网站江门关键词排名工具
  • 市政府网站建设seo优化专员
  • 在线教育网站有什么程序做打开百度
  • 成都建材网站建设西安seo网站推广优化
  • 澧县网站建设百度小说风云榜2022
  • 网站原型图设计seo推荐
  • 无锡网站制作怎么样大白兔网络营销策划书
  • 东莞企业网站制作关键词seo排名怎么样
  • 自己做的网站怎么在百度上搜到郑州网站网页设计
  • 学做淘宝网站是骗子吗网上怎么找人去推广广告
  • 做淘宝联盟网站要多少钱福建省人民政府
  • 江西网站开发多少钱网站域名在哪买
  • 做外贸生意用哪个网站最好资源网站优化排名软件公司
  • java网站开发框架搭建百度打广告多少钱一个月
  • 北京专业网站开发福州seo优化