一、单件模式
单件模式确保一个类只有一个实例,并提供一个全局访问点。
二、应用场景
现代化的巧克力工厂具备计算机控制的巧克力锅炉。锅炉要做的事,就是把巧克力和牛奶融合在一起,然后送到下一个阶段,以制造成巧克力棒。
public class ChocolateBoiler{
private boolean empty;
private boolean boiled;
public ChocolateBoiler(){ //代码开始时锅炉是空的
empty = true;
boiled = false;
}
public void fill(){ //在锅炉内填入原料时,锅炉必须是空的。一旦填入原料,就把empty和boiled标志设置好
if(isEmpty()){
empty = false;
boiled = false;
//在锅炉内填满巧克力和牛奶的混合物
}
}
public void drain(){ //锅炉排出时必须是满的而且是煮过的,排出完毕后,把empty标志设回true
if(!isEmpty() && isBoiled()){
//排出煮沸的巧克力和牛奶
empty = true;
}
}
public void boil(){ //煮混合物时,锅炉必须是满的,并且是没有煮过的,一旦煮沸后,就把boiled标志设为true
if(!isEmpty() && !isBoiled()){
//将炉内物煮沸
boiled = true;
}
}
public boolean isEmpty(){
return empty;
}
public boolean isBoiled(){
return boiled();
}
}
<