Java将移动方法的效率提升到另一个类

时间:2012-06-04 12:23:01

标签: java

我目前正在开展一个相当庞大的项目,其中有几个类别超过20,000个线路。这是因为将UI的所有生成的swing代码与所有功能代码混合在一起是一个明智的想法。 我想知道在内存或运行时方面是否会产生任何额外成本,将大多数非UI相关功能转移到一个单独的类中。 举一个例子,这与我正在构建的内容类似。

public class Class1{
    private Class1Util c1u;
    List<String> infoItems;
    ...
    public void Class1(){
        c1u = new Class1Util(this);
    }
    public void btnAction(ActionListener al){
        ...
        c1u.loadInfoFromDatabase();
    }
}

public class Class1Util{
    private Class1 c;

    public void Class1Util(Class1 c){
        this.c = c;
    }
    public void loadInfoFromDatabase(){
        c.infoItems.add("blah");
    }
}

最后,我还想移动一些像infoItems这样的字段,这会导致反向关系,Class1访问c1u.infoItems。

2 个答案:

答案 0 :(得分:6)

不,关注点分离是一种很好的面向对象的设计实践。它不会让您在性能方面花费任何有意义的东西,并且在维护,可扩展性等方面将获得许多许多好处。

答案 1 :(得分:2)

对于额外级别的解除引用,您可能会获得微小的性能损失,但在UI代码中不会引人注意,并且您将获得如此多的额外清晰度,以至于您不会后悔。

最终,您可能希望将状态保持外部化为第三个类,然后从手写和生成的代码中使用该状态,或使用Generation Gap Pattern来管理由于需要与生成的代码。