我有一个与设计相关的问题w.r.t inheritence。
Class A
protected field1
protected field2
protected field3
private List<B>
B类应包含field1,field2和field3 +确定它自己的属性。
如果B可以作为A的子类,那么可以。
这种关系不知何故感觉不错 我的要求是, 当对象A有field1,field2和field3时,我们应该确保 对象A列表中的每个对象应该具有相同的字段。
是否有其他方法可以确保上述条件。
感谢。
答案 0 :(得分:0)
继承是一种选择。我会在这种情况下使用它。
另一个是组合,但是你需要以某种方式公开字段,这取决于预期的用途
Class B {
private A a
// Constructor
public B(A instanceOfA) {
this.a = instanceOfA
}
public setField1(value) {
this.a.field1 = value
}
...
}
答案 1 :(得分:0)
除非两个类之间存在严格的IS-A关系,否则应始终使用合成。具有组合的设计更加灵活和可维护。