I'm new to OO programming and having troubles with "global/shared" data. The problem is that I fetch data (about 60 variables) from a Data-BUS every 20ms. Then I have a lot of classes which needs this data and also modify it.
My solution was creating a class including all the variables so all "global" data is in one object. And then every class has a reference to this object in the constructor. It works but I'm sure thats not a good way how to do it. How would you solve this problem? I would be really grateful for any advice!!
Here is an Java example I know there should be 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;
}
}