单例模式定义
-单例模式的意思就是只有一个实例。
-确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这就是单例。
//饿汉模式实例
public class Demo1{
public static void main(String[] args) { Demo2 d1 = Demo2.getInstance(); Demo2 d2 = Demo2.getInstance(); System.out.println(d1.toString()); System.out.println(d2.toString()); } } class Demo2{/***
* 饿汉模式
* "饿汉式"是在不管你用的用不上,一开始就建立这个单例对象 */ private static Demo2 demo = new Demo2(); private Demo2(){ System.out.println("单例模式——饿汉模式"); } public static Demo2 getInstance() { return demo; }}
//懒汉模式实例
public class Demo1{ public static void main(String[] args) { Demo3 d1 = Demo3.getInstance(); Demo3 d2 = Demo3.getInstance(); System.out.println(d1.toString()); System.out.println(d2.toString()); } }
class Demo3{ /*** * 懒汉模式 * "懒汉式"是在你真正用到的时候才去建这个单例对象 */ private static Demo3 demo = null; private Demo3(){ System.out.println("单例模式——懒汉模式"); } public static Demo3 getInstance() { if(demo==null){ demo = new Demo3(); } return demo; }}
单例要点:
- 一个类只有一个实例
- 自行创建实例 [指向自己实例的私有静态引用]
- 私有的构造方法
- 向外提供一个返回自己实例的公共静态方法
由于一般项目有自己的框架,所以单例模式用的比较少,但在数据库中的连接用到了这一知识,还有static运用的比较多。