您的位置:首页 > 编程语言 > Java开发

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

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

实现过程
新建类文件,名称为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()方法中,创建3个Emperor对象并输出其名字。
源代码如下:
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,然后提供一个静态方法,该方法返回这个类的对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: