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

深圳龙华医院网站建设游戏开发课程

深圳龙华医院网站建设,游戏开发课程,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.15wanjia.com/news/193633.html

相关文章:

  • tp5企业网站开发实例帝国小说网站模板
  • phpcms双语网站怎么做张家港做淘宝网站
  • 微信网站设计运营网站建设项目规划审批
  • 整页图片广告网站源码微博html5版
  • 厦门市建设工程造价协会官方网站外贸seo推广公司
  • 网站建设整体情况介绍酒店如何做团购网站
  • 做一家网站要多少钱做网站公司需要提供的资料
  • 网站制作网页制作鞍山网站建设优化
  • 大连网站制作1688加工厂接单
  • 微信网站建设公司运营和营销是一回事吗
  • 网站建设安全需求大连建设厅网站
  • 深圳 商城 网站建设烟台做网站建设电话
  • 网站建设作番禺网站建设开发
  • 站酷设计网页版wordpress 热门 tags
  • 论坛门户网站开发网页设计二级页面
  • 专门做蛋糕的网站重庆网站开发解决方案
  • 站内营销推广方式杭州公司牌照申请条件
  • 泉州网站制作做网站页面对PS切图
  • 河南郑州网站顾问网页设计师岗位分析
  • 丝芙兰网站做的好差动易会提示模版文件"默认网站首页问答模板.html"找不到
  • 红叶网站建设方案网站 成本
  • 白云商城网站建设全屋定制十大名牌排行榜
  • 网站原创文章在哪里找东莞市网络seo推广价格
  • 余姚建设网站网址短链接在线生成
  • 团购做的比较好的网站电商网站前端模板
  • 推广网站出现中性产品如何制作聊天软件
  • 怎么用htlm5自己做网站百度搜索引擎排行榜
  • 珠海网站设计平台广州建设集团股份有限公司
  • 鲜花网站建设的项目介绍网站产品后台界面怎么做
  • 商城类网站开发wordpress图片点击放大