您的位置:首页 > 编程语言 > Java开发

javaSE-面向对象-单例设计模式

2014-02-25 17:20 411 查看


/*
设计模式:就是解决问题行之有效的方法。是一种思想。

单例设计模式:解决的问题就是保证一个类在内存中只有一个对象。

如何保证一个类在内存中的对象唯一性呢?

1,不让其他程序创建该类对象。
2,在本类中自己创建一个本类对象。
3,对外还提供一个获取该对象的方法。

*/

//饿汉式
class Single
{

//2,自定义一个本类对象。
private static Single s = new Single();
//1,私有化构造函数。
private Single(){}

//3,定义一个方法返回该对象。让其他程序通过这个方法就可以获取该对象。
public static Single getInstance()
{
System.out.println("s="+s);
return s;
}
}
//懒汉式: 延迟加载模式。
class Single2
{
private static Single2 s = null;

private Single2(){}

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

/*
class Test
{
}
*/
class SingleDemo
{
public static void main(String[] args)
{
// Test t = new Test();
// System.out.println(t);
Single s1 = Single.getInstance();
System.out.println("s1="+s1);
// Single s1 = Single.s;
// System.out.println("s1===="+s1);

SuperMan man1 = SuperMan.getInstance();
SuperMan man2 = SuperMan.getInstance();
man1.setNum(10);
System.out.println(man1.getNum());
System.out.println(man2.getNum());

SuperMan man = new SuperMan();

}
}
//描述超人,就一个,需要保证该类对象的唯一性。三步!
class SuperMan
{
private String name;
private int num;
private static SuperMan p = new SuperMan("克拉克");
public static SuperMan getInstance()
{
return p;
}

public String getName()
{
return name;
}
public void setNum(int num)
{
this.num = num;
}
public int getNum()
{
return num;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: