私は現在、2万行を超えるいくつかのクラスを持つかなり大規模なプロジェクトに取り組んでいます。これは、UI用に生成されたすべてのスイングコードをすべての関数型コードと混合することが誰かの賢明なアイデアだったためです。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にアクセスするという逆の関係になります。