Java经典编程300例之实例046 单例模式的应用
2014-07-10 09:29
323 查看
实例说明
中国历史上的皇帝通常仅有一人。为了保障其唯一性,古人采用增加“防伪标识”的办法,如玉玺。更简单的办法是限制皇帝的创建。本实例使用单例模式来保证皇帝的唯一性。
实现过程
新建类文件,名称为Emperor。在Emperor类中,将构造方法设置成私有,并提供一个静态方法用于获得该类的实例。
源代码如下:
再创建类文件,名称为Test。在该类的main()方法中,创建3个Emperor对象并输出其名字。
源代码如下:
编译运行
$ javac Emperor.java Test.java
$ java Test
创建皇帝1对象:
我是皇帝:明日科技
创建皇帝2对象:
我是皇帝:明日科技
创建皇帝2对象:
我是皇帝:明日科技
技术要点
单例模式的特点在于仅能获得一个对象。为了防止其他用户创建对象,需要将构造方法设置成private,然后提供一个静态方法,该方法返回这个类的对象。
中国历史上的皇帝通常仅有一人。为了保障其唯一性,古人采用增加“防伪标识”的办法,如玉玺。更简单的办法是限制皇帝的创建。本实例使用单例模式来保证皇帝的唯一性。
实现过程
新建类文件,名称为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,然后提供一个静态方法,该方法返回这个类的对象。
相关文章推荐
- Java经典编程300例之实例065 适配器模式的简单应用
- Java经典编程300例之实例062 简单的汽车销售商场(多态)
- Java经典编程300例之实例063 使用Comparable接口自定义排序
- Java经典编程300例之实例012 从控制台接收输入字符
- Java经典设计模式之五大创建模式(附实例和详解)
- java语言讲解singleton的编程思想---深入浅出单实例Singleton设计模式
- java经典编程300例--java开始的日子
- JAVA操作数据库方式与设计模式应用-Java基础-Java-编程开发
- Java经典设计模式之七大结构型模式(附实例和详解)
- Java经典编程实例源码及视频专题汇总
- 实例讲解Java的设计模式编程中责任链模式的运用
- Java网络编程之简单的服务端客户端应用实例
- Java中的DAO设计模式应用举例 ------> 来自Java WEB 开发实战经典
- Java经典设计模式之五大创建型模式(附实例和详解)
- Java经典设计模式之七大结构型模式(附实例和详解)
- 实例讲解Java设计模式编程中如何运用代理模式
- Java 编程基础,应用与实例
- java多态编程实例应用
- Java经典算法四十例编程详解+程序实例
- Java经典编程300例之实例064 策略模式的简单应用