Java经典编程300例之实例046 单例模式的应用

实例说明

中国历史上的皇帝通常仅有一人。为了保障其唯一性,古人采用增加“防伪标识”的办法,如玉玺。更简单的办法是限制皇帝的创建。本实例使用单例模式来保证皇帝的唯一性。


实现过程

新建类文件,名称为Emperor。在Emperor类中,将构造方法设置成私有,并提供一个静态方法用于获得该类的实例。

源代码如下:

public class Emperor {
    private static Emperor emperor = null;
    private Emperor() {
    }
    public static Emperor getInstance() {
        if (emperor == null) {
            emperor = new Emperor();
        }
        return emperor;
    }
    public void getName() {
        System.out.println("我是皇帝:明日科技");
    }
}

再创建类文件,名称为Test。在该类的main()方法中,创建3Emperor对象并输出其名字。

源代码如下:

public class Test {
    public static void main(String[] args) {
        System.out.println("创建皇帝1对象:");
        Emperor emperor1 = Emperor.getInstance();
        emperor1.getName();
        System.out.println("创建皇帝2对象:");
        Emperor emperor2 = Emperor.getInstance();
        emperor2.getName();
        System.out.println("创建皇帝2对象:");
        Emperor emperor3 = Emperor.getInstance();
        emperor3.getName();
    }
}

编译运行

$ javac Emperor.java Test.java

$ java Test

创建皇帝1对象:

我是皇帝:明日科技

创建皇帝2对象:

我是皇帝:明日科技

创建皇帝2对象:

我是皇帝:明日科技


技术要点

单例模式的特点在于仅能获得一个对象。为了防止其他用户创建对象,需要将构造方法设置成private,然后提供一个静态方法,该方法返回这个类的对象。


你可能感兴趣的:(java,单例模式)