单例模式有懒汉式,饿汉式,和双重锁模式。
单例模式的特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
1,懒汉式(其中的if确保对象只被创建一次,这是与饿汉模式最重要的区别。)
public class Wife {
private static Wife wife;
private Wife() {
}
public static Wife GetInstance() {
if (wife == null) {
wife = new Wife();
}
return wife;
}
public void Show() {
System.out.println("漂亮姑娘出来展示了自己");
}
public void Marry() {
System.out.println("漂亮姑娘跟男青年结婚了");
}
public static void main(String[] args) {
Wife wife1 = Wife.GetInstance();
Wife wife2 = Wife.GetInstance();
if (wife1 == wife2) {
System.out.println("没错,是同一个姑娘");
}
}
2,饿汉模式
public class Wife {
private static Wife wife=new Wife();
private Wife() {
}
public static Wife GetInstance() {
return wife;
}
public void Show() {
System.out.println("漂亮姑娘出来展示了自己");
}
public void Marry() {
System.out.println("漂亮姑娘跟男青年结婚了");
}
public static void main(String[] args) {
Wife wife1 = Wife.GetInstance();
Wife wife2 = Wife.GetInstance();
if (wife1 == wife2) {
System.out.println("没错,是同一个姑娘");
}
}
3,双重锁模式。