单例设计模式
单例设计模式(多例设计模式)主要是一种控制实例化对象产生个数的设计操作.单例模式有饿汉式,饱汉式。
饿汉式:
public class Boss {
private static final Boss INSTANCE = new Boss();
private Boss(){
}
public static Boss getInstance(){
return INSTANCE;
}
public void println(){
System.out.println("one boss");
}
}
public class JavaDemo5{
public static void main(String[] args) {
Boss boss=null;
boss = Boss.getInstance();
boss.println();
}
}
懒汉式
public class Boss {
private static Boss instance ;
private Boss(){
}
public static Boss getInstance(){
if(instance == null){ // 第一次使用
instance = new Boss(); // 实例化对象
}
return instance ;
}
}
public void println(){
System.out.println("one boss");
}
}
public class JavaDemo5{
public static void main(String[] args) {
Boss boss=null;
boss = Boss.getInstance();
boss.println();
}
}
多例设计模式
与单例设计对应的还有一个称为多例设计,单例设计指的是只保留一个实例化对象,而多例设计指的是可以保留有多个实例化对象。
class Color { // 定义描述颜色的类
private static final Color RED = new Color ("红色");
private static final Color GREEN = new Color ("绿色");
private static final Color BLUE = new Color ("蓝色");
private String title;
private Color(String title){ // 构造方法私有化
this.title = title;
}
public static Color getInstence(String color){
switch(color){
case "red" : {
return RED;
}
case "green" : {
return GREEN;
}
case "blue" : {
return BLUE;
}
default:return null;
}
}
public String toString(){
return this.title;
}
}
public class JavaDemo{
public static void main(String args[]){
Color c = Color.getInstence("green");
System.out.println(c);
}
}
switch JDK1.7之后支持字符串
多例设计与单例设计的本质是相同的,一定都会在内部提供有static方法以返回实例化对象。