Java 初始化共同依赖对象时的最佳实践是什么?

Java 初始化共同依赖对象时的最佳实践是什么?,java,Java,我一直在尝试通过创建一个实践android应用程序来提高我(目前较差)的java技能。在我的应用程序中,每个屏幕都由一个类管理,该类管理处理输入、逻辑和渲染 对于某些类,它变得太大而难以理解,因此我决定将代码移动到几个分类类中,这些分类类在主屏幕类中称为对象。例如: public class Screen { ScreenA a; ScreenB b; ScreenC c; public Screen() { a = new ScreenA(); b = new Screen

我一直在尝试通过创建一个实践android应用程序来提高我(目前较差)的java技能。在我的应用程序中,每个屏幕都由一个类管理,该类管理处理输入、逻辑和渲染

对于某些类,它变得太大而难以理解,因此我决定将代码移动到几个分类类中,这些分类类在主屏幕类中称为对象。例如:

public class Screen {

 ScreenA a;
 ScreenB b;
 ScreenC c;

 public Screen() {
  a = new ScreenA();
  b = new ScreenB();
  c = new ScreenC();
 }

 public void doStuff() {
  a.method();
  b.method();
  c.method();
 }
}
我试图理解的是,这是否是提高代码易读性的正确方法,以及它是否对内存使用/处理速度有任何影响。例如,调用静态方法是更好的选择吗

此外,当类相互依赖时,答案是否会改变?例如,ScreenB中的方法是否需要调用ScreenA中的变量或方法?我认为下面两个例子中的任何一个都是合适的,但我不知道什么是最佳实践:

public class Screen {

 ScreenA a;
 ScreenB b;
 ScreenC c;

 public Screen(){
  a = new ScreenA();
  b = new ScreenB(a);
  c = new ScreenC(a,b);
 }

 public void doStuff(){
  a.method();
  b.method();
  c.method();
 }
}

public class ScreenB {

 ScreenA a;

 public ScreenB(ScreenA a) {
  this.a = a;
 }
}
或:

我想了解的是,这是否是正确的解决方法 提高代码的易读性,以及它是否对记忆有任何影响 使用/处理速度。例如,调用静态方法是更好的选择吗

您所做的基本上是在不同的类中划分不同的职责,并封装行为。这就是OOP的全部内容,Java是为OOP而构建的。与调用静态方法相比,实例化对象有一定的成本,但您永远不应该害怕这样做。静态方法不允许封装、继承、依赖项注入和许多其他使OO应用程序成为好软件的东西

此外,当类依赖于 彼此例如,ScreenB中的方法是否需要调用变量或 ScreenA中的方法?我会想到这两个例子中的任何一个 下面是合适的,但我不知道什么是最佳实践

决定参数和类属性的一个经验法则是:您总是要使用相同的参数吗?如果是,则它们不是参数,而是状态,应该传递给构造函数。如果否,则可将其用作参数

另一个好的指标是:有多少方法需要相同的参数来实现它们的功能?如果有许多方法需要这些参数,那么属性可能比参数更有意义

public class Screen {

 ScreenA a;
 ScreenB b;
 ScreenC c;

 public Screen(){
  a = new ScreenA();
  b = new ScreenB();
  c = new ScreenC();
 }

 public void doStuff(){
  a.method();
  b.method(a);
  c.method(a,b);
 }
}