我正在尝试用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所需的状态。