继承时的设计问题

时间:2011-04-28 10:22:24

标签: inheritance

我有一个与设计相关的问题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列表中的每个对象应该具有相同的字段。

是否有其他方法可以确保上述条件。

感谢。

2 个答案:

答案 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关系,否则应始终使用合成。具有组合的设计更加灵活和可维护。