这次来看下单例模式,这次就没有类图了。
直接看代码吧:
public class 我_懒汉 {
private static 我_懒汉 t = null;
private 我_懒汉() {
}
public 我_懒汉 newInstance() {
if(t == null) {
t = new 我_懒汉();
}
return t;
}
}
public class 我_懒汉同步 {
private static 我_懒汉同步 t = null;
private 我_懒汉同步() {
}
public synchronized 我_懒汉同步 newInstance() {
if(t == null) {
t = new 我_懒汉同步();
}
return t;
}
}
public class 我_懒汉同步2 {
private static 我_懒汉同步2 t = null;
private 我_懒汉同步2() {
}
public 我_懒汉同步2 newInstance() {
if (t == null) {
synchronized (我_懒汉同步2.class) {
if (t == null) {
t = new 我_懒汉同步2();
}
}
}
return t;
}
}
public class 我_饿汉 {
private static 我_饿汉 t = new 我_饿汉();
private 我_饿汉() {
}
public 我_饿汉 newInstance() {
return t;
}
}
public class 我_内部类 {
private 我_内部类() {
}
private static class 内部类 {
private static final 我_内部类 t = new 我_内部类();
}
public 我_内部类 newInstance() {
return 内部类.t;
}
}
public class 我_双重校验 {
private static volatile 我_双重校验 t = null;
private 我_双重校验() {
}
public 我_双重校验 newInstance() {
if (t == null) {
synchronized (我_懒汉同步2.class) {
if (t == null) {
t = new 我_双重校验();
}
}
}
return t;
}
}