单例设计模式

75 阅读1分钟

在我们设计开发过程中如果需要让得到的对象始终是同一个就可以通过单例设计模式来实现。

要实现单例设计模式主要分为三大步。

1:将无参构造器私有化,防止外部直接实例化对象破坏单例。

private Singleton(){}

2:这时需要一个公共的方法来获取对象,但是我们已经将无参构造器私有化,不能通过对象来调用方法了。所以我们需要一个静态的方法让其他类获取到对象。

public static Singleton getSingleton(){
    return singleton;
}

3:通过静态方法获取时也必须要将对象通过static修饰,不然静态方法进入内存时没有对象在内存中会报错。同时还要将对象私有化,并且不让修改。

private static Singleton singleton=new Singleton();

4:完整代码入下:主要有俩种实现方式。

public class Singleton {
    private Singleton(){}
    private static Singleton singleton=new Singleton();
    public static Singleton getSingleton(){
        return singleton;
    }
}

这种方式需要使用同步代码块修饰,使其在多线程时保证安全。

public class Singleton {
    private Singleton(){}
    private static Singleton singleton=null;
    synchronized public static Singleton getSingleton() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }
}