首页 > 代码库 > 单例设计模式

单例设计模式

1 单例设计模式概述与体现

 

单例设计模式

解决的问题:就是可以保证一个类在内存中的对象唯一性

 

/*

 * 设计模式:对问题行之有效的解决方式,其实它是一种思想

 *

 * 1 单例设计模式

 *    解决的问题:就是可以保证一个类在内存中对象的唯一性

 *    

 *    如何保证对象唯一性?

 *    1  不允许其他程序用new创建该类对象

 *    2  在该类中返回一个本类实例。

 *    3 对外提供一个方法让其它程序可以获取该对象

 *

 * 步骤:

 * 1  私有化该类构造函数

 * 2  通过new在本类中创建一个本类对象

 * 3  定义一个公有方法,将该对象返回

 */

 

class Single

{

private static Single s=new Single();  //私有化才不会被类名直接调用

 

 private Single()

 {

 

 }

 public static Single getInstance()  //必须静态才能调用

 {

 return s;

 }

 public void show()

 {

 System.out.println("单例 单例!!!");

 }

 

}

public class DesignPattern {

   public static void main(String[] args) {

 Single s=Single.getInstance();

 s.show();

 

}

 

}

 

2 单例设计模式  懒汉式和恶汉式

 

//饿汉式  开发时常用

class Single

{

private static Single s=new Single();  //随着类的加载对象就建立

private Single(){}

 

public static Single getInstance()

{

return s;

 

}

}

 

 

//懒汉式  (在多线程中存在隐患)

class Single2

{

private static Single2 s=null;  //类加载对象还未建立 (当调用getInstance 才会创建对象,也称为延迟加载形式)

private Single2(){}  

 

public static Single2 getInstance()

{

if(s==null)

 s=new Single2();

return s;

 

}

}

 

public class my {

 

}

 

单例设计模式