单例模式(Singleton)
来源:互联网 发布:平面效果图设计软件 编辑:程序博客网 时间:2024/05/16 17:30
单例模式(Singleton)
@@@模式定义:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
@@@练习示例:
读取配置文件的内容。
@@@示例代码:
src/tools/AppConfig.java
src/tools/AppConfig.properties
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
paramA=a
paramB=b
src/user/Client.java
~~~~~~~~~~~~~~~~~~~~
@@@模式的实现:
1. 饿汉式,空间换时间,线程安全。
2. 懒汉式,时间换空间,不加同步则线程不安全。
3. 用枚举实现。
@@@模式的本质:
控制实例数目,节省系统资源。
@@@模式定义:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
@@@练习示例:
读取配置文件的内容。
@@@示例代码:
src/tools/AppConfig.java
~~~~~~~~~~~~~~~~~~~~~~~~
package tools;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * * 读取应用配置文件 */public class AppConfig {/** * 定义一个变量来存储创建好的类实例,直接在这里创建类实例,只能创建一次 */private static AppConfig instance = new AppConfig();/** * 定义一个方法来为客户端提供AppConfig类的实例 * @return 一个AppConfig的实例 */public static AppConfig getInstance() {return instance;} /** * 用来存放配置文件中参数A的值 */private String parameterA; /** * 用来存放配置文件中参数B的值 */private String parameterB;public String getParameterA() {return parameterA;}public String getParameterB() {return parameterB;}/** * 私有化构造方法 */private AppConfig() {//调用读取配置文件的方法readConfig();}/** * 读取配置文件,把配置文件中的内容读出来设置到属性上 */private void readConfig() {Properties p = new Properties();InputStream in = null;try {in = AppConfig.class.getResourceAsStream("AppConfig.properties");p.load(in);//把配置文件中的内容读出来设置到属性上this.parameterA = p.getProperty("paramA");this.parameterB = p.getProperty("paramB");} catch (IOException e) {System.out.println("装载配置文件出错了,具体堆栈信息如下:");e.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}}}
src/tools/AppConfig.properties
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
paramA=a
paramB=b
src/user/Client.java
~~~~~~~~~~~~~~~~~~~~
package user;import tools.AppConfig;public class Client {public static void main(String[] args) {//创建读取应用配置的对象 AppConfig config = AppConfig.getInstance(); String paramA = config.getParameterA(); String paramB = config.getParameterB(); System.out.println("paramA=" + paramA + ", paramB=" + paramB);}}
@@@模式的实现:
1. 饿汉式,空间换时间,线程安全。
2. 懒汉式,时间换空间,不加同步则线程不安全。
3. 用枚举实现。
@@@模式的本质:
控制实例数目,节省系统资源。
- 单例(Singleton)模式
- singleton 单例模式
- Singleton单例模式
- Singleton(单例)模式
- Singleton 单例模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- Singleton(单例)模式
- Singleton(单例)模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式Singleton
- Singleton (单例模式)
- Singleton单例模式
- 单例模式----SingleTon
- 单例模式-singleton
- 单例模式(Singleton)
- Singleton(单例模式)
- arm-linux下移植的qt和tslib那些鸟事
- 关于MinGW GCC编译C++程序动态链接到libgcc_s_dw2-1.dll的问题
- linux下卸载oralce时,root用户执行$ORACLE_HOME/bin/localconfig delete提示不是文件或者文件夹
- linux tty ----uart 分析
- java完成文字处理屏蔽的功能
- 单例模式(Singleton)
- 今天机器上架, 真辛苦
- Struts2标签迭代数组汇总
- 数据归一化汇总
- 使用common-pool实现的一个简单的线程池
- WCF测试工具-WcfStorm
- java 内存分配机制
- PHP自学之路-----面向对象的编程方法
- stl set