java设计模式-01单例模式
设计模式(Design Pattern)
是一套被反复使用、多数人只晓得、经过分类编目、代码设计经验的总结。
目的
使用能够设计模式是为了可重用代码、让代码更容易被他人理解、保证代码的可靠性。
单例模式
作用:保证整个应用程序中某个实例有且只有一个。
类型:饿汉模式、懒汉模式。
饿汉模式特点
加载类时比较慢,但运行时对象的获取熟读比较快。(线程安全)
package singleton.hungrymode;
/**
* Created by Hoictas on 2017/10/9.
*/
public class HungryModeDemo {
//1.将构造方法私有化,不允许外部直接创建对象
private HungryModeDemo() {
}
//2.创建类的唯一实例
private static HungryModeDemo hungryModeDemo = new HungryModeDemo();
//3.提供一个用于获取实例的方法,使用public static修饰
public static HungryModeDemo getInstance() {
return hungryModeDemo;
}
public static void main(String[] args) {
HungryModeDemo hungryModeDemo1 = HungryModeDemo.getInstance();
HungryModeDemo hungryModeDemo2 = HungryModeDemo.getInstance();
System.out.println(hungryModeDemo1);
System.out.println(hungryModeDemo2);
}
}
懒汉模式特点
加载类时比较快,但运行时对象的获取速度比较慢。(线程不安全)
package singleton.lazymode;
/**
* Created by Hoictas on 2017/10/9.
*/
public class LazyModeDemo {
//1.将构造方法私有化,不允许外部直接创建对象
private LazyModeDemo() {
}
//2.声明类的唯一实例,使用public static修饰
private static LazyModeDemo lazyModeDemo;
//3.提供一个用于获取实例的方法,使用public static修饰
public static LazyModeDemo getInstance() {
if (lazyModeDemo == null) {
lazyModeDemo = new LazyModeDemo();
}
return lazyModeDemo;
}
public static void main(String[] args) {
LazyModeDemo lazyModeDemo1 = LazyModeDemo.getInstance();
LazyModeDemo lazyModeDemo2 = LazyModeDemo.getInstance();
System.out.println(lazyModeDemo1);
System.out.println(lazyModeDemo2);
}
}
2017/10/11 18:35:16