我正在做一个项目并且遇到了一个问题,我不知道在类之间共享更新数据的最佳方式。我这样做的当前方法是在其中包含我的类的静态实例,并让所有其他类更改实例而不是原始类。
public class A{
public static volatile instance;
public B b = new B();
public C c = new C();
public D d = new D();
public A(){
this.instance = this;
b.changeData();
}
}
public class B{
public void changeData(){
A.instance.d.changeSomethingInD();
}
}
现在,D 对其变量所做的所有更改都可以被 B 和 C 访问。有没有更好的方法来做到这一点?
编辑1:我遇到的问题是所有其他类都可以访问更新的变量。这是我之前在做的:
public class MainClass extends JavaPlugin{
private RegionLoader rLoader;
private ClassesLoader cLoader;
private MessageHandler mHandler;
private PlayerDates pDates;
public MainClass(){
dirMaker();
mHandler = new MessageHandler(this);
pDates = new PlayerDates(this);
cLoader = new ClassesLoader(this);
rLoader = new RegionLoader(this);
}
//getters and setters
}
但问题是,如果 RegionLoader 在自身内部发生了某些变化,ClassesLoader 将没有更新的变量,并且可以与旧的变量一起使用,还是会这样?