很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。
如果客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象,则在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用Java控制台应用程序实现该单例模式。绘制该模式的UML图。
UML类图:
程序代码(Java语言):
AppConfig.java
public class AppConfig {
private static AppConfig instance=null;//定义一个静态私有实例
private String ParameterA;
private AppConfig() {//将构造方法设为私有的
}
public String getParameterA() {
System.out.println("ParaA");
return ParameterA;
}
public void setParameterA(String parameterA) {
ParameterA = parameterA;
}
//向外提供一个静态的公有函数用于创建或获取该静态私有实例
public static AppConfig getInstance() {
if(instance == null) {
instance = new AppConfig();
}
return instance;
}
}
Client.java
public class Client {
public static void main(String[] args) {
AppConfig appconfig1 = AppConfig.getInstance();
System.out.print("appconfig1:");
appconfig1.getParameterA();
AppConfig appconfig2 = AppConfig.getInstance();
System.out.print("appconfig2:");
appconfig2.getParameterA();
}
}