在某些情况下,一个类只需要一个实例,单例模式就可以解决这样的需求;
单例模式比较简单,也是比较常用的一种设计模式,它是把一个类的构造方法定义为private,防止外界随意创建新的实例,同时提供一个对外的接口以供外加访问;看下面的代码:
package com.agm.singelton;
public class Singleton {
//define a singleton instance
private static Singleton instance = null;
//define the construture as private
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
public static void main(String[] args) {
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println("the first instance: "+singleton1);
System.out.println("the second instane"+singleton2);
System.out.println(singleton1 == singleton2);
}
}
这样通过getInstance()方法就能保证在程序中只产生一个实例对象,其中在定义instance变量的时候并没有创建对象,而是在第一次使用的时候创建,也有人叫做懒汉模式。
大家有兴趣可以添加群,一起讨论学习,群二维码: