23种设计模式之单例模式

来源:互联网 发布:阿里云自己搭建hadoop 编辑:程序博客网 时间:2024/05/23 16:56
  1. /** 
  2.  * 读取应用配置文件,单例实现 
  3.  */  
  4. public class AppConfig {  
  5.     /** 
  6.      * 定义一个变量来存储创建好的类实例,直接在这里创建类实例,只会创建一次 
  7.      */  
  8.     private static AppConfig instance = new AppConfig();  
  9.     /** 
  10.      * 定义一个方法来为客户端提供AppConfig类的实例 
  11.      * @return 一个AppConfig的实例 
  12.      */  
  13.     public static AppConfig getInstance(){  
  14.         return instance;  
  15.     }  
  16.       
  17.     /** 
  18.      * 用来存放配置文件中参数A的值 
  19.      */  
  20.     private String parameterA;  
  21.     /** 
  22.      * 用来存放配置文件中参数B的值 
  23.      */  
  24.     private String parameterB;  
  25.     public String getParameterA() {  
  26.         return parameterA;  
  27.     }  
  28.     public String getParameterB() {  
  29.         return parameterB;  
  30.     }  
  31.     /** 
  32.      * 私有化构造方法 
  33.      */  
  34.     private AppConfig(){  
  35.         //调用读取配置文件的方法  
  36.         readConfig();  
  37.     }  
  38.     /** 
  39.      * 读取配置文件,把配置文件中的内容读出来设置到属性上 
  40.      */  
  41.     private void readConfig(){  
  42.         Properties p = new Properties();   
  43.         InputStream in = null;  
  44.         try {  
  45.             in = AppConfig.class.getResourceAsStream(  
  46. "AppConfig.properties");  
  47.             p.load(in);  
  48.             //把配置文件中的内容读出来设置到属性上  
  49.             this.parameterA = p.getProperty("paramA");  
  50.             this.parameterB = p.getProperty("paramB");  
  51.         } catch (IOException e) {  
  52.             System.out.println("装载配置文件出错了,具体堆栈信息如下:");  
  53.             e.printStackTrace();  
  54.         }finally{  
  55.             try {  
  56.                 in.close();  
  57.             } catch (IOException e) {  
  58.                 e.printStackTrace();  
  59.             }  
  60.         }  
  61.     }     
  62. }  

  1. public class Client {  
  2.     public static void main(String[] args) {  
  3.         //创建读取应用配置的对象  
  4.         AppConfig config = AppConfig.getInstance();  
  5.   
  6.         String paramA = config.getParameterA();  
  7.         String paramB = config.getParameterB();  
  8.   
  9.         System.out.println("paramA="+paramA+",paramB="+paramB);  
  10.     }  
  11. }  

原创粉丝点击