Java中的设计模式之单例模式:设计模式是一套反复被人使用,多数人知晓的,经过分类编目的,代码设计经验的总结. 使用设计模式是为了重用代码。
让代码更容易被他人理解,保证代码可靠性.毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样.
单例设计模式
目的:保证在整个应用系统中,某一个类有且只有一个实例(一个类在堆内存中只存在一个对象).即所有指向该类de实例的引用都指向同一块内存空间. 写单例模式(饿汉式)的步骤:
1.必须在该类中,自己先创建一个私有的对象. 2.私有化自身的构造器,防止外界通过构造器创建新的对象. 3.向外暴露一个公共的静态方法用于获取自身的对象
代码如下:
class ArrayUtil{
//1.必须在该类中,自己先创建一个私有的对象.
private static ArrayUtil instance = new ArrayUtil();
//2.私有化自身的构造器,防止外界通过构造器创建新的对象.
private ArrayUtil(){}
//3.向外暴露一个公共的静态方法用于获取自身的对象
public static ArrayUtil getInstance(){
return instance;
}
//常用的工具方法
public void sort(){
System.out.println("数组工具类的sort被调用了");
}
}
class Test{
public static void main(String[] args){
ArrayUtil.getInstance.sort();//输出:数组工具类的sort被调用了
System.out.println(ArrayUtil.getInstance ==
ArrayUtil.getInstance);//输出:true
}
}
总结: 工具类使用单例模式可以节约内存资源,不需要在每个使用工具的时候创建一个新的实例.
相比较懒汉式,饿汉式也是一种线程安全的方法,而且比较简单易懂,static修饰后的实例在字节码文件加载进JVM的时候就会初始化,避免了在多线程环境下可能会多次创建实例的问题。