单例就是限制只能创建类的一个对象,就是只有一个实例。
实用价值:
从单例模式的字面上的意思来理解它的用途, 是对系统资源的节省, 可以避免重复实例化。但比较实用的作用是:
1.使用单例模式, 则可以避免大量的new 操作消耗的资源。
如web开发应用主要应用于数据库应用, 所以一个应用中会存在大量的数据库操作,
在使用面向对象的方式开发时, 如果使用单例模式, 则可以避免大量的new 操作消耗的资源。
2. 如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现.
小心bug:
单例模式必须考虑并行情况下的操作,不可重入的方法和必须独占使用的数据要记得加锁!
例如,如果打印机类是使用单例模式设计的,那打印的操作必须加锁,
某台电脑正在打印文档的时候别的机器就不能使用打印功能,否则可以想象的情况是我打印一点内容后被别人抢去打印了
别人的一点内容,然后我又抢到了。。。
这样打印出来的东西就没用了。 |