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

Java语言实现的单例设计模式复习

2015-10-26 22:22 716 查看

1 单例设计模式概述

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。它是对问题行之有效的解决方式和思想。
单例(单个实例)设计模式可以保证一个类在内存中的对象唯一性。比如对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。为了保证对象的唯一性,一是不允许其他程序用new创建该类对象;二是在该类创建一个本类实例对象;三是对外提供一个方法让其他程序可以获取该对象。步骤:私有化该类的构造函数;通过new在本类中创建一个本类对象;定义一个公有的方法,将创建的对象返回。

2 “饿汉式”单例设计模式程序示例

package captain;

public class SingleDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
SingleTest st1 = SingleTest.getInstance();
SingleTest st2 = SingleTest.getInstance();
st1.setNum(10);
st2.setNum(20);
System.out.println(st1.getNum());
System.out.println(st2.getNum());
}

}

class SingleTest{

private int num;

//“饿汉式”(类一旦加载对象就被创建)单例设计模式的三步
private static SingleTest st = new SingleTest();//在该类中创建一个本类的私有化静态的对象
private SingleTest(){}//私有化该类的构造函数
public static SingleTest getInstance(){//对外提供一个公有化静态的方法返回一个该类的对象。
return st;
}

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

3 “懒汉式”单例设计模式程序示例

package captain;

public class SingleDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
SingleTest st1 = SingleTest.getInstance();
SingleTest st2 = SingleTest.getInstance();
st1.setNum(10);
st2.setNum(20);
System.out.println(st1.getNum());
System.out.println(st2.getNum());
}

}

class SingleTest{

private int num;

//“懒汉式”(调用getInstance方法时才创建对象)单例设计模式的三步,这种单例设计模式在多线程中存在线程安全问题。
private static SingleTest st = null;//在该类中声明一个本类的私有化静态的对象的空引用。
private SingleTest(){}//私有化该类的构造函数
public static SingleTest getInstance(){//对外提供一个公有化静态的方法返回一个该类的对象。
if(st == null)
st = new SingleTest();
return st;
}

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



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