单例设计模式饿汉式
package Singleton;
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return INSTANCE;
}
public void print() {
// TODO Auto-generated method stub
System.out.println("Singleton");
}
}
package Singleton;
public class TestDemo {
public static void main(String[] args) {
Singleton sin = Singleton.getInstance();
Singleton sin1 = Singleton.getInstance();
Singleton sin2 = Singleton.getInstance();
sin.print();
sin1.print();
sin2.print();
}
}
单例设计模式懒汉式
package Singleton;
public class SingletonLazy {
private static final SingletonLazy Instance = null;
private SingletonLazy(){}
public static SingletonLazy getInstance(){
if(Instance == null){
return new SingletonLazy();
}
return new SingletonLazy();
}
public void print() {
// TODO Auto-generated method stub
System.out.println("LAZY");
}
}
package Singleton;
public class TestDemoLazy {
public static void main(String[] args) {
SingletonLazy sin = SingletonLazy.getInstance();
sin.print();
}
}
多例设计模式
package Singleton;
interface IMessage{
String getInfo();
}
public enum Color implements IMessage {
RED("红色"),GREEN("蓝色"),BLUE("绿色");
private String title;
Color(String title){
this.title = title;
}
@Override
public String getInfo() {
// TODO Auto-generated method stub
return this.title;
}
}
package Singleton;
public class TestColor {
public static void main(String[] args) {
IMessage msg = Color.RED;
System.out.println(msg);
}
}