单列模式
public class Singleton {
/*
* private static Singleton instance; private Singleton(){
*
* } public static Singleton getInstance(){ if(instance==null){ synchronized
* (Singleton.class) { if(instance==null){ instance=new Singleton(); } } }
* return instance; }
*/
private static Singleton instance;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
interface Animal {
public void say();
}
class Cat implements Animal {
public void say() {
System.out.print("猫说话");
}
}
class Mouse implements Animal {
public void say() {
System.out.print("老鼠说话");
}
}
class Factory {
public static Animal getInstance(String className) {
Animal animal = null;
if ("Cat".equals(className)) {
animal = new Cat();
}
if ("Mouse".equals(className)) {
animal = new Mouse();
}
return animal;
}
}