我正在尝试用Java编写应用程序代码,我想了解一些有关注入的信息。

我有一个继承自JFrame的类A:

public class A extends JFrame {

public A(CModel model){

    B classB = new B(model);
  }
}


从JPanel继承的B类:

public class B extends JPanel {

public CModel model;

public B(CModel model){

    this.model = model;
  }
}


为了将Model注入B类,我必须将其注入A类。
我可以这样做还是被认为是不良做法?
我还有其他选择吗?

提前致谢

最佳答案

在您的设计中,类B需要一个CModel(好的做法是使模型“最终”)。

A类封装B;因此,虽然您可以首先构造B,然后将B注入A,但没有充分的理由这样做。创建A的用户不需要了解B。

由于B需要一个CModel,因此A也需要一个CModel。

您完成此操作的方式最好地描述了A,因为构造A所需的唯一“状态”就是B所需的状态。

09-12 19:10