博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习日记之单例模式和Effective C++
阅读量:5157 次
发布时间:2019-06-13

本文共 985 字,大约阅读时间需要 3 分钟。

单例模式(Singleton):保证一个类仅有一个实例,并提供一个訪问它的全局訪问点。

(1),通常我们能够让一个全局变量使得一个对象被訪问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类能够保证没有其它实例被创建,而且它能够提供一个訪问该实例的方法。

(2),lock 是确保当一个线程位于代码的临界区时,还有一个线程不进入临界区。假设其它线程试图进入锁定的代码,则它将一直等待,知道该对象被释放。

(3),双重锁定解决效率问题。

(4),C#与公共语言执行库也提供了一种“静态初始化”方法,这样的方法不须要开发者显示地编写线程安全代码,就可以解决多线程环境下它是不安全地问题。

(5),这样的静态初始化的方式是在自己被载入时就将自己实例化,所以被形象的称谓饿汉式单例类,假设在第一次被引用时,才会将自己实例化,被称谓懒汉式单例类。

Effective C++:

1:绝不又一次定义继承而来的缺省參数值

(1),绝对不要又一次定义一个继承而来的缺省參数值,由于缺省參数值都是静态绑定,而 virtual 函数式动态绑定的。

2:通过复合塑模出 has-a 或“依据某物实现出”

(1),复合(compositon)的意义和 public 继承全然不同。

(2),在应用域(application domain),复合意味 has-a 。在实现域(implementation domain),复合意味 is-implemented-in-terms-of(依据某物实现出)。

3:明智而审慎地使用 private 继承

(1),Private 继承意味着 is-implemented-in-terms-of (依据某物实现出)。它通常比复合(composition)的级别低。可是当 derived class 须要訪问 protected base class 的成员,或须要又一次定义继承而来的 virtual 函数时,这么设计是合理的。

(2),和复合(composition)不同, private 继承能够造成 empty base 最优化。这对致力于“对象尺寸最小化”的程序库开发人员来说,可能非常重要。

转载于:https://www.cnblogs.com/mengfanrong/p/4208136.html

你可能感兴趣的文章
使用OctreeQuantizer提高gdi+绘图质量
查看>>
Asset Store 下载的package存在什么地方?
查看>>
[凯立德]2015春季版C2739-M7L83-3521JON,已O+带3D+带路况
查看>>
Linux实战教学笔记32:企业级Memcached服务应用实践
查看>>
php-day1
查看>>
820
查看>>
C/C++面试之算法系列--去除数组中的重复数字
查看>>
python插入排序算法总结
查看>>
web.xml 模板和Servlet版本
查看>>
【Cocos2D-X 】初窥门径(9)播放音乐/音效
查看>>
创业之路这样走 必死无疑
查看>>
python数据结构不常用的方法(哈哈,其实是常用的)
查看>>
汽车倒车入库技巧图解--倒车方式一字倒车-----非字倒车---斜45度倒车
查看>>
使用Kubeadm(1.13+)快速搭建Kubernetes集群
查看>>
chamfer_pcd
查看>>
day3 网络基础
查看>>
Tomcat修改源码,重新编译
查看>>
人物和背景分离的快速方法
查看>>
计算两个日期之间的工作日(去掉周末和节假日)
查看>>
JSP相关知识
查看>>