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

淘宝网站建设策划书备案用的网站建设方案书

淘宝网站建设策划书,备案用的网站建设方案书,软件通网站建设,网站弹窗特效单例模式 引言 对于程序设计的时候,我们有些时候不希望平凡的创建对象,比如创建这个一个对象的成本很高,比如线程池,这个时候我们希望共享一个对象,这个时候,就可以使用我们的单例模式。 单例模式本质上是…

单例模式

在这里插入图片描述

引言

对于程序设计的时候,我们有些时候不希望平凡的创建对象,比如创建这个一个对象的成本很高,比如线程池,这个时候我们希望共享一个对象,这个时候,就可以使用我们的单例模式。

单例模式本质上是一种程序设计的方式,我们通过合理的设计,使得某一种类只能定义一次,通过类的静态的方式调用

防止拷贝构造和赋值重载

其实只需要防止拷贝构造即可,因为构造不成功,更不可能赋值重载。

我们提供一种优雅的方式,继承nocopy类

// 定义不能拷贝的类作为基类
class NoCopy
{
public:NoCopy() = default;// 将拷贝构造和赋值重载删除NoCopy(const NoCopy&) = delete;NoCopy& operator=(const NoCopy&) = delete;
};

通过继承实现单例模式

这里我只使用了C++11, 也可以使用C++17的更高级的特性简化

class Object : public NoCopy
{
private:Object() {}
public:Object& getInstance(){if (self == nullptr) self = std::unique_ptr<Object>();return *self;}static std::unique_ptr<Object> self;
};std::unique_ptr<Object> Object::self = nullptr;

在这种情况下,我们只需要调用Object::getInstance()就可以直接获取到对象。

饿汉和懒汉模式

上面我创建的思想是懒汉模式。

饿汉模式就是无论我是否使用这个单例对象,我都会在执行程序的时候创建一个对象

懒汉模式更像是一种延迟定义,只有我们需要使用它的时候,我们才进行创建

  • 恶汉模式: 直接创建
    std::unique_ptr<Object> Object::self = std::make_unique(); // make_unique是C++14支持
    Object& getInstance() { return *self; }
    
  • 懒汉模式 : 延迟创建
    Object& getInstance(){if (self == nullptr) self = std::unique_ptr<Object>();return *self;}
    std::unique_ptr<Object> Object::self = nullptr;
    
http://www.yayakq.cn/news/670780/

相关文章:

  • 泉州城乡住房建设厅网站wordpress视频压缩
  • 高校网站建设 调查管理系统的主要内容
  • 公司网站背景图网络平台建站
  • 南昌制作网站的公司成都旅游学院
  • 检测 网站优化网站开发视频教程迅雷下载
  • 阿里云简单网站建设企业移动网站建设
  • 翼城网站建设个人申请网站
  • 莱州网站建设长春h5建站模板
  • 网站建设维诺之星网页编辑用户信息原理
  • 采购网站官网模板网免费下载素材
  • html5的网站杭州高端网站开发
  • 网站开发专业是干嘛的如何在服务器上搭建网站
  • 网站 备案 时间100种迷你小手工
  • 小型企业门户网站源码短视频seo询盘获客系统软件
  • 企业网站推广的方法专业建设内容
  • 做网站网页尺寸是多少钱接网站建设的单子
  • 商务网站构建与维护财务公司管理系统
  • 什么网站可以做软件有哪些网络营销的基本流程
  • 可以显示一张图片的网站怎么搭建百度网盘网页版登录入口
  • 湟中网站建设宜兴百度推广
  • 在线购物网站功能模块百度快照什么意思
  • 中英网站模板怎么注销自己做的网站
  • 网站怎么创建论坛网页设计制作实训报告模板
  • 如何用云服务器做网站阐述商业网站开发岗位需求分析
  • 长沙建网站培训四川成都营销型网站
  • 河北新亚建设集团网站雄安做网站
  • 仿糗事百科网站源码dede二次开发分享+评论+互动城建设投资公司网站
  • 购买天猫店铺网站网站被恶意攻击
  • 国内做网上旅游业务的网站想学网络营销怎么学
  • 九龙坡网站建设公司163邮箱登录页面