写了一个程序,但是引用了大量的static变量和全局变量,有什么好的方法解决?
考虑了接口,但是接口中的成员不能改变。。

解决方案 »

  1.   

    可以提供一个思路,就像腾讯QQ,他们的static变量也很多,他们采取的办法是,把所有static变量写在xml文件里,根据需要去解析的
      

  2.   

    其实,这些static变量和全局变量占不了多少内存的,关键是分门别类,别弄得到处都是,弄得很乱。
      

  3.   


    // 我们项目目前是这样做的.需要用时就Constant.A.A1   Constant.B.B2
    public class Constant {
    public class A{
    public static final String A1= "A1";
    public static final String A2= "A2";
    } public class B{
    public static final String B1= "B1";
    public static final String B2= "B2";
    }
    }
      

  4.   

    程序开发就是内存管理。不明白你仅仅是不爽,还是内存不足了。如果仅仅不爽,那就习惯习惯吧。如果内存不足,对于java来讲,管理好依赖关系即可,利用classLoader来动态加载就可以控制住内存,不要直接import,而是利用classloader使用时动态加载Constant类,用完就释放引用,GC会帮你清理内存的。如果是自己管理内存的语言,例如C++,那就把静态变量转化为堆栈变量,做法就是函数直接返回字符串。这些方法都是以时间换空间。除非你算法极复杂,否则空间也罢,时间也罢,现代计算机都是足够足够的。所以,我认为你看着不爽的可能居大。
      

  5.   

    非常感谢解答。刚毕业进公司没多久,然后老板说要求我严谨高效写代码,所以。
    现在正在看 《java编程思想》这本书。。
      

  6.   

    我平时涉及到一次性加载多个static变量的时候,会选择在xml中配置,然后用dom4j解析,用一个static代码块解析
      

  7.   

    我倒觉得这是一种思路吧:静态变量的好处就是其他类可以很容易的调用,常驻内存;
    临时变量就是用的时候申请内存,用完释放。所以定义一个static变量的时候,要考虑下,到底会被多少次引用。