我目前正在开展一个相当庞大的项目,其中有几个类别超过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。
答案 0 :(得分:6)
答案 1 :(得分:2)
对于额外级别的解除引用,您可能会获得微小的性能损失,但在UI代码中不会引人注意,并且您将获得如此多的额外清晰度,以至于您不会后悔。
最终,您可能希望将状态保持外部化为第三个类,然后从手写和生成的代码中使用该状态,或使用Generation Gap Pattern来管理由于需要与生成的代码。