设计模式只是一种思想,和语言无关,可以用java实现,也可以用c++甚至C以及其他语言来实现。
单例设计模式:
首先啥是单例??单例就是在整个应用中这个对象只能被创建一次。
其次什么情况下使用单例??只能被使用一次的东西可以用单例来实现,例如摄像头的管理等等,就是某个对象你只想出现一次。
接下来说怎么实现:
1:私有化构造函数
说明构造函数私有化了,其他类就无法直接new了,可以在自己的类中来控制了。
2:提供获取实例方法:
在类中提供一个公有的方法给其他类调用,这个方法能创建唯一的对象。
其实很简单了。
但是对于单例,我们又将其分为两种:
一种是饿汉式:顾名思义很饥渴,呵呵,用词不当了。
另一种懒汉式:顾名思义就是推一下动一下的感觉,虽然不是很贴切。
贴上java的实现代码:
饿汉式实现:
public class EagerSingleton {
private static EagerSingleton instance = new EagerSingleton();
/**
* 私有默认构造子
*/
private EagerSingleton(){}
/**
* 静态工厂方法
*/
public static EagerSingleton getInstance(){
return instance;
}
}
可见,不管三七二十一,它先在内存中创建了一个对象(static),都不管你是否去使用了,很饥渴吧
懒汉式实现
public class LazySingleton {
private static LazySingleton instance = null;
/**
* 私有默认构造子
*/
private LazySingleton(){}
/**
* 静态工厂方法
*/
public static synchronized LazySingleton getInstance(){
if(instance == null){
instance = new LazySingleton();
}
return instance;
}
}
相信到这里,单例模式你已经相当熟悉了。找个合适的地方赶紧用一用吧。