单例设计模式

单例模式,它的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。

单例模式具备典型的3个特点:1、只有一个实例。 2、自我实例化。 3、提供全局访问点。

 因此当系统中只需要一个实例对象或者系统中只允许一个公共访问点,除了这个公共访问点外,不能通过其他访问点访问该实例时,可以使用单例模式。

单例模式的主要优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,所以扩展起来有一定的困难。其UML结构图非常简单,就只有一个类,如下

//单例设计模式,懒汉式
public class Mysingleton {
private static volatile Mysingleton mysingleton=null;
//私有构造
private Mysingleton(){
}
public static Mysingleton getInstance(){
if(mysingleton==null){
synchronized (Mysingleton.class){
if(mysingleton==null){
mysingleton=new Mysingleton();
}
}
}
return mysingleton;
}

}

/*
饿汉式
*/
public class Mysingleton2 {
//类内部实例化
private final static Mysingleton2 STANCE=new Mysingleton2();

//构造器私有化,防止new对象
private Mysingleton2(){
}
//对外提供公有方法调用
public static Mysingleton2 getInstance(){
return STANCE;
}
}

posted @ 2020-09-07 16:03  小--z  阅读(162)  评论(0)    收藏  举报