以下例子为榴莲只有一个,所以要单例
先私有化构造方法(使得外部无法再实例化):
public class Fruit{
private Fruit(){
}
再私有化一个类属性,并指向一个实例
private static Fruit durian = new Fruit();
创建一个方法来获取这个对象
public static Fruit getInstance(){
return durian;
}
以上采用的是饿汉式写法,无论怎样类属性都会先指向一个实例,下面是懒汉式写法,只有要调用的时候类属性才指向实例:
public class Fruit {
private Fruit(){
}
private static Fruit durian;
public static Fruit getInstance(){
if (durian == null){
durian = new Fruit();
}
return durian;
}
饿汉式的优点是调用方法的时候快,因为已经先实例化了,缺点是占用内存多(也就是空间换时间);懒汉式则反之(也就是时间换空间)。