单例设计模式

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

必须对于多个程序使用同一配置信息对象时,就需要保证对象的唯一性。

如何保证对象唯一性呢?

1、不允许new出来对象。

2、在本类构造方法里new出来。

3、对外提供一个方法让其他程序可以获取对象。

步骤:

1、私有化该类构造函数

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

3、定义一个共有的方法,将创建的对象返回


class Single {
// 私有化是为了可控
private static Single s = new Single();


private Single() {
}


public static Single getInstance() {
return s;
}
}


class Danli_test {


public static void main(String[] args) {
Single s1 = Single.getInstance();
Single s2 = Single.getInstance();
System.out.println(s1 == s2);// 结果是true
// Single sss=Single.s; 不可控
Test t1 = Test.getInstance();
Test t2 = Test.getInstance();
t1.setNum(10);
t2.setNum(20);
System.out.println(t1.getNum());
System.out.println(t2.getNum());
}
}


// 简单的实例模型
class Test {
private int num;
// 下面三句就可以保证对象的唯一性
private static Test t = new Test();


private Test() {
}


public static Test getInstance() {
return t;
}


public void setNum(int num) {
this.num = num;
}


public int getNum() {
return num;
}
}


 

posted @ 2014-04-22 22:51  场者  阅读(123)  评论(0编辑  收藏  举报