您的位置:首页 > 其它

单例设计模式的一点心得

2014-08-13 15:53 155 查看
解决的问题:保证内存中只有一个对像(比如多个程序使用同一个配置信息);

如 何 实现: 1、 不允许其它程序用new 创建该类对象

      2、 在该类创建一个本类实例

      3、 对外提值一个方法让其它程序获取该对象

步骤: 1、 私有化该类构造函数;

      2、 通过new在本类中创建一个静态本类对象

      3、 定义一个公有的、静态的方法,将创建的对象返回(一般为getInstance())

饿汉式(开发时使用): 一上来就初始化一个实例

懒汉式(面试): 需要的时候再创建实例(延时加载),但在多线程时无法证对象的唯一性

class Single{                                        //饿汉模式

private Single(){}                               //这样就不能在外面New了

private static Single s = new Single();          //饿汉就自己new一个吧

public static Single getInstance(){              //静态方法返回自己生产的那个对象,不过不管调用只能返回同一个哦~~
return s;
}
void print(){
System.out.println("Hello World!");
}
}

class Single2{
private Single2(){}

private static Single2 s2 = null;                //懒汉模式与饿汉模式的区别就在这,需要了我再去new

public static Single2 getInstance(){
if(s2 == null){
s2 = new Single2();
}
return s2;
}
}

public class SingleDemo{
public static void main(String[] args){
Single s = Single.getInstance();
s.print();
//Single s = new Single();
//System.out.println("Hello World!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: