单例模式有饿汉式和懒汉式两种创建方法。
饿汉式
package comm.lbb.jcc;
class DrinksMachine {
private static DrinksMachine dm = new DrinksMachine(); //静态私有数据成员,产生唯一对象
private DrinksMachine () { //私有化构造方法
}
public static DrinksMachine getDm () { //取得唯一实例对象的公共静态成员方法
return dm;
}
public void open (String name) {
System.out.println("按下按钮,流出" + name);
}
}
public class Ch06 {
public static void main(String[] args) {
DrinksMachine dm = DrinksMachine.getDm();
dm.open("橙汁");
dm.open("可乐");
}
}
懒汉式
package comm.lbb.jcc;
class DrinksMachine01 {
private static DrinksMachine01 dm = null; //静态私有数据成员,没有产生唯一对象
private DrinksMachine01 () { //私有化构造方法
}
public static DrinksMachine01 getDm () { //取得唯一实例对象的公共静态成员方法,若没有唯一实例对象则产生对象
if (dm == null)
dm = new DrinksMachine01();
return dm;
}
public void open (String name) {
System.out.println("按下按钮,流出" + name);
}
}
public class Ch07 {
public static void main(String[] args) {
DrinksMachine01 dm = DrinksMachine01.getDm();
dm.open("雪碧");
dm.open("柠檬水");
}
}
以上是自己写的代码,记录学习情况,如有不对,请多见谅。