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

网站 在百度搜索不到网站源码怎么下载

网站 在百度搜索不到,网站源码怎么下载,网站点击量怎么看,邯郸网站优化公司目录 单例模式是什么#xff1f; 单例模式的应用#xff1a; 饿汉单例模式#xff1a; 1.实现#xff1a; 2.理解#xff1a; 懒汉单例模式#xff1a; 1.实现#xff1a; 2.理解#xff1a; 懒汉和饿汉的优缺点 饿汉模式的优点#xff1a; 饿汉模式的缺点 单例模式的应用 饿汉单例模式 1.实现 2.理解 懒汉单例模式 1.实现 2.理解 懒汉和饿汉的优缺点 饿汉模式的优点 饿汉模式的缺点 懒汉模式的优点 懒汉模式的缺点 单例模式是什么 单例模式顾名思义单个实例就是说一个类只能实例化出一个对象。通常都是作为全局对象要让所有人都能访问但是只有一份。 单例模式的应用 日志记录通常在开发过程中是多人的那就会有很多人来写日志。这时候就需要一个日志记录器用于记录所有模块的日志信息所以这个记录器应该是针对所有人的并且为了避免重复所以使用单例模式 相似的还有配置管理连接池管理全局状态管理 在多线程下的线程安全对象。有些对象需要确保只有一个实例被多个线程共享多个线程使用一个对象。结合锁的使用可以保证这个单独对象在多线程下的安全性和一致性。 饿汉单例模式 1.实现 单例模式的使用方式就是这个对象初始化完后只能通过一个静态接口获取并且要把构造函数和赋值构造拷贝构造都放入私有中。如下代码 class Singleton{public:static Singleton* GetInstance() //通过调用GetInstance() 在类外获得实例{ return _slt; //返回这个实例的地址}void print() //输出实例的数据{cout _x _y endl;for (auto e : _vect){cout e ;}cout endl;}void Add_Vect(int n) //对实例的Vector进行尾插{_vect.push_back(n);}private:int _x;int _y;vectorint_vect;static Singleton _slt; //类内声明//因为要实现单例类全局只能有一个对象因此要将构造函数私有化否则可以在类外随便创建Singleton(int x 1, int y 1, const vectorint v { 1,2,3,4,5 }):_x(x), _y(y), _vect(v){}//禁用拷贝构造和赋值重载Singleton(const Singleton hs) delete;Singleton operator(const Singleton hs) delete;};//类外初始化Singleton Singleton::_slt(2, 2,{ 4,5,6 });//测试懒汉void Test01(){//Singleton::GetInstance()返回创建静态对象的指针Singleton::GetInstance()-print();Singleton::GetInstance()-print();cout 对象1的地址为 Singleton::GetInstance() endl;cout 对象2的地址为 Singleton::GetInstance() endl;//结果为//2 2 //4 5 6//后面两个地址是一样的也就是返回的都是同一个实例} 2.理解 1.饿汉模式解释 顾名思义饿汉就是一个很饿的人只要有东西吃立马就吃了没有任何等待的所以饿汉模式就是在还没进入main函数前就实例好的模式。 2.为什么要把三种构造函数私有化 很显然我们要实现单例那就不允许你在类外调用构造函数生成这个对象所以我们在类内就声明了这个对象初始化时也是只能对这个对象(_slt)初始化。拷贝和赋值也是同理我只能有一个这个对象所以不允许你拷贝和赋值 3.然后实现的饿汉模式对上面代码的解释 static Singleton _slt; //类内声明 我们在类内声明了这个对象然后把三个构造函数给私有化所以现在就只剩下这一个对象 又因为单例模式是全局给所有人使用的所以在类外初始化时是全局初始化 //类外初始化Singleton Singleton::_slt(2, 2,{ 4,5,6 }); 接下来要调用这个对象只能通过先指定要调用的类然后GetInstance()找到这个单例对象。然后才能调用对应的接口。因为无法构造且调用时只能通过接口所以不用担心对象被修改。所以实现了单例模式 static Singleton* GetInstance() //通过调用GetInstance() 在类外获得实例{    return _slt;                //返回这个实例的地址} //Singleton::GetInstance()返回创建静态对象的指针Singleton::GetInstance()-print();Singleton::GetInstance()-print(); 懒汉单例模式 顾名思义懒汉就是很懒的一个人顶级拖延症只有必要时才会做对应的事所以懒汉就是只有要使用这个实例时才进行创建 1.实现 class Singleton{public:static Singleton* GetInstance() //必须定义为静态函数因为只有这样才可以不创建对象去调用它来创建对象{ //否则所有成员函数要通过对象去调用(若不设置为静态的无法创建出来对象构造函数私有了)static Singleton slt(2, 2, {7,8,9}); //静态函数每次只会初始化一次 所以只会在第一次调用时初始化return slt; //下次调用GetInstance()会直接返回slt}void print(){cout _x _y endl;for (auto e : _vect){cout e ;}cout endl;}void Add_Vect(int n){_vect.push_back(n);}private:int _x;int _y;vectorint_vect;//因为要实现单例类全局只能有一个对象因此要将构造函数私有化否则可以在类外随便创建Singleton(int x 1, int y 1, const vectorint v { 1,2,3,4,5 }):_x(x), _y(y), _vect(v){}//禁用拷贝构造和赋值重载Singleton(const Singleton hs) delete;Singleton operator(const Singleton hs) delete;};//测试懒汉void Test01(){//Singleton::GetInstance()返回创建静态对象的指针Singleton::GetInstance()-print(); Singleton::GetInstance()-print();cout 对象1的地址为 Singleton::GetInstance() endl;cout 对象2的地址为 Singleton::GetInstance() endl;//结果为(因为调用两次所以打印两次)//2 2 //7 8 9//2 2//7 8 9//后面两个地址是一样的} 2.理解 1.创建时机 这里我们和饿汉不同的点就是我们把slt的初始化放到了GetInstance()里所以只有有人调用时才会创建这个slt。 2.slt会不会重复创建 当然不会这里就要先理解一下静态成员静态成员在一个对象中只会初始化一次并存入静态区中。所以不会重复创建。当然三个构造函数还是要私有化不能让别人使用构造。 懒汉和饿汉的优缺点 饿汉模式的优点 线程安全在类加载的时候就创建实例不存在多线程环境下的线程安全问题还没进入主函数就创建完实例了所以不用担心线程安全问题。 饿汉模式的缺点 可能会造成资源浪费在程序运行过程中始终存在实例可能会占用一定的资源。不支持延迟加载无法实现延迟加载的特性。就是说如果这个单例很大那在开始时可能会一直卡着直到这个单例初始化完成。 懒汉模式的优点 延迟加载在第一次调用时才创建实例节省资源。节约内存只有在需要时才创建实例避免资源浪费。 懒汉模式的缺点 线程安全性问题在多线程环境下需要额外的同步措施来保证线程安全。可能存在性能问题在第一次调用时需要进行实例化可能会影响程序性能。
http://www.yingshimen.cn/news/17780/

相关文章:

  • 手机网站有吗做网站不用tomcat行吗
  • 企业网站建设有什么好处定制软件开发合同
  • 推广网站有哪些平台越南做网站
  • 房产汽车网站模板西安市城市建设管理局网站
  • 网站代码下载校园网站怎么建
  • 财经资讯网站该怎么做推广中铁建设集团最新门户网登录
  • 文化网站设计经典案例北京市住房和城乡官网
  • 网站开发要懂英文吗南宁网络公司有哪些
  • 什么网站可以免费做会计初级线上销售培训班课程
  • 哪些做调查问卷挣钱的网站网站转移动版
  • 制作梦核的网站公众号平台注册
  • 吉安律师网站建设网站建设必知
  • 网站流量怎么挣钱wordpress 自适应
  • 河北制作网站模板建站公司网站建设需申请注册域名
  • 甘肃省住房与城乡建设厅网站首页建设网站都要学些什么手续
  • 网站建设投标ppt模板下载wordpress二次开发
  • 长沙网站主机建设公司官方网站
  • 东莞网站建设 汇卓公司建设网站费用如何入帐
  • 租车行网站模版化工营销型网站
  • 徐州网站的优化门户网站都在哪推广
  • 怎么在华为防火墙做网站映射做网站价位
  • 网站产品页排名怎么做大连网站开发选领超科技
  • 化工行业网站设计WordPress源码交易源码
  • 网站建设网站制作哪家好查看网站是哪个公司做的
  • 网站开发人员工作内容朝阳网络科技有限公司
  • 广州网站(建设信科网络)泉州网页建站模板
  • 宁波自助建站系统物流网站建设工作岗位
  • 青海营销网站建设服务深圳做网站
  • 网站页面构成专业建站lhznkj
  • 凡科网站代理登录入口无棣网页设计