首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

可更新的登记式的单实例模式

2012-10-26 
可更新的注册式的单实例模式?????? 最近,遇到这样一个应用。在系统中需要大量的配置信息,为了不每次都找数

可更新的注册式的单实例模式

?????? 最近,遇到这样一个应用。在系统中需要大量的配置信息,为了不每次都找数据库或者配置文件。需要一个生命周期和App一样的容器(=静态变量),但是在配置信息被修改时还需要去更新这个容器。

?

????? 首先选用的是单实例模式。单实例模式中又可分为恶汉,懒汉,以及一种基于饿汉型的注册型。

????? 个人感觉懒汉型单例模式没什么,而饿汉型的更能体现java特点。然注册行的可扩展性较强,个人感觉有点像

?????? 一个实例工厂.下面来一一列举。

?

恶汉:

?

public class ConfigImpl extends ConfigClass { private List properties = null;    /**     * @return the properties     */    public List getProperties() {        return properties;    }    private ConfigImpl() {        initalProperties();    }    public static ConfigImpl getInstance() {        return (ConfigImpl) ConfigClass.getInstance("singleConfig.ok.ConfigImpl");    }    /**     *      * @author xiaofeng.bai<BR>     * <B>Time</B> : 2008-12-11 下午01:59:24     */    public void updateProperties() {        ConfigImpl con = new ConfigImpl();        properties = con.getProperties();    }    /**     * @author xiaofeng.bai<BR>     * <B>Time</B> : 2008-12-11 下午01:56:53     */    private void initalProperties() {        // 初始化配置信息    }}

?

呵呵终于完成了,但是现在发现一个问题很晕。我在ConfigImpl中的updateProperties()中有创建了一个ConfigImpl的实例,这样能完成我对properties的更新吗?

单实例顾名思义在一个JVM中只有一个实例,这样是否可行呢?

?

?

1 楼 new20080601 2009-01-07   和java与模式 那里很像呀。。。。
只是
public void updateProperties() { 
        Config con = new (ConfigImpl)       ConfigClass.getInstance("singleConfig.ok.ConfigImpl");  //改成这样呢? 随便说说的
 
        properties = con.getProperties(); 
    } 
 
    /**
     * @author xiaofeng.bai<BR>
     * <B>Time</B> : 2008-12-11 下午01:56:53
     */ 
    private void initalProperties() { 
        // 初始化配置信息 
    } 
这个没有,(*^__^*) 嘻嘻……,新手报道 2 楼 new20080601 2009-01-07   public void updateProperties() { 
  
    } 
这个方法不要呀也可以
在测试,类里用

Config con = new (ConfigImpl)       ConfigClass.getInstance("singleConfig.ok.ConfigImpl");

  con .getProperties()
应该就确保一个了吧 3 楼 chian_xxp 2009-04-10   能否请楼主简要介绍下RegSingleton 类中static private的用意。实在看不明白,这样的修饰有什么特别的用意吗?

在jdk source中,也发现File.java中也出现这样的用法。
4 楼 fmjasper 2009-04-11   你确定这个程序能通过? 不会跑出access exception, 注册式的singleton, 子类的constructor必须是public

热点排行