首页 > 代码库 > 单例设计模式
单例设计模式
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 {
}
单例设计模式