gpt4 book ai didi

java - java类重载配置依赖的设计

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:23 25 4
gpt4 key购买 nike

假设这是我从 DB/XML 读取的配置数据对象:

class ConfigurationClass{

//some configurations
public String getString(){

}
}

现在这是使用此配置对象的类

class ConfigurationUser implements Reloadable{

private ConfigurationClass configuration;

//some extra logic required for making object ready to use
public void init(){
// some new object is created based on configuration
SomeObject obj = new SomeObject(configuration.getString());

//register to configuration manager
}

@Override
public void reload(){
//does whole reloading stuff
//creates a new instance of configuration class and reads new configuration which is not appropriate
}
}

现在,当我必须重新加载配置时,假设我创建一个 ConfigurationClass 的新实例并将其注入(inject) ConfigurationUser 类中。但我还必须重新初始化该对象,以便它可以创建新的配置相关对象。

这是一个合适的设计还是有更好的方法?我想过使用 Spring 或 Google Juice 进行 DI,但我再次必须向配置用户类提供回调,该配置已重新加载。

我是使用 IoC 容器的新手,所以不知道这是否可能。 需要在实时服务器应用程序中使用它,因此必须严格控制垃圾产生和性能。

当前解决方案:

public interface Reloadable{

public void reload();
}

我有一个配置管理器,我向其中注册所有配置用户实例,当要完成重新加载时,管理器只需调用reload,它就会读取新配置并重新初始化所有依赖对象。

如有任何帮助,我们将不胜感激。

最佳答案

我认为您正在寻找 Observer/Listener design pattern 。您的配置用户应该是“观察者”,配置本身将是“主题”。首先,观察者将自己注册到主题中。接下来,每次主题更改时,它都会通知所有观察者,然后他们重新加载(或做任何他们想做的事情)。

关于java - java类重载配置依赖的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14413667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com