"全局/共享"面向对象编程的数据

时间:2013-06-26 09:58:55

标签: java global-variables object-oriented-database shared-data

我是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;

    }
}

0 个答案:

没有答案