我是OO编程的新手,并且遇到了“全局/共享”数据的麻烦。 问题是我每20ms从数据总线获取数据(大约60个变量)。然后我有很多需要这些数据的类并且还要修改它。
我的解决方案是创建一个包含所有变量的类,以便所有“全局”数据都在一个对象中。然后每个类在构造函数中都引用了这个对象。它有效,但我确信这不是一个好方法。你会如何解决这个问题? 我真的很感激任何建议!!
这是一个Java示例,我知道应该有getter / setter:
public class MainProgram {
private GlobalData iGlobalData;
private TestClass iTestClass;
public MainProgram(){
iGlobalData = new GlobalData(this);
iTestClass =new TestClass(this);
}
public static void main(String[] args) {
MainProgram h =new MainProgram();
iTestClass.docalc();
System.out.println(iGlobalData.test);
}
}
public abstract class MainProgramComponent {
private MainProgram iMainProgram;
}
public class GlobalData extends MainProgramComponent{
public int test;
GlobalData(MainProgram iMainProgram){
super(iMainProgram);
}
}
public class TestClass extends MainProgramComponent{
private GlobalData iGlobalData;
TestClass(MainProgram iMainProgram){
super(iMainProgram);
this.iGlobalData=iMainProgram.getiGlobalData();
}
public void docalc(){
iGlobalData.test =iGlobalData.test+1;
}
}