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

仿阿里百秀网站模板加盟网站制作公司

仿阿里百秀网站模板,加盟网站制作公司,站长之家ping检测,怎样做推广更有效目录单例模式应用场景实现步骤涉及知识点设计与实现单例模式 通过单例模式的方法创建的类在当前进程中只有一个实例; 应用场景 配置管理 日志记录 线程池 连接池 内存池 对象池 消息队列 实现步骤 将类的构造方法定义为私有方法 定义一个私有的静态实例 提供一…

目录

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

单例模式

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

应用场景

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

实现步骤

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

涉及知识点

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.yayakq.cn/news/277301/

相关文章:

  • 咸阳网站建设学校公司企业邮箱怎么注册
  • 西安建设网站排名在哪家网站做推广好
  • 有哪些网站平台wordpress 搭建app
  • 国外网站发展建设wamp wordpress打不开
  • 东莞市官网网站建设平台wordpress主题 演示数据库
  • 天津建设厅网站首页国外家具设计网站
  • 温州专业手机网站制作哪家便宜网站建设公司哪家好速找盛世传媒
  • 安徽网站建设开发有没有必要给企业做网站
  • 企业网站页面图片微网站建设行业现状
  • 中山网站建设推广云表无代码开发平台
  • 河南专业网站建设公司排名邮箱注册网站申请
  • 河间专业做网站电话网络工程师考几科
  • 网站平台推广方案网站添加白名单
  • 中医网站开发洛阳做公司网站
  • 婚庆公司网站设计阿凡达营销网站
  • 论坛类网站如何备案免费php网站系统
  • 市桥网站建设培训学校网络设计报告提纲范文
  • 网站建设实验作业桂林人才网
  • 淮北哪有做网站的wordpress 支付宝插件下载
  • 展会网站怎么做营销型和展示型网站的区别
  • 台州网站建设seo用php写的网站
  • 云主机怎样做网站黑龙江微信网站开发
  • 德阳建设局官方网站彩票网站建设服务
  • 购物商城网站建设方案网站建设需要备案吗
  • 山东做网站的公司佛山建站公司排名
  • wordpress多站点无法发布文章wordpress 插件激活
  • 快速判断网站开发语言wordpress没有安装主题选项卡
  • wordpress换了空间无法登录密码一个网站多个子域名优化
  • 宁波市环境建设保护局网站官网站站
  • 厦门市建设保障性住房局网站店铺logo图片大全