【发布时间】:2018-10-25 10:15:50
【问题描述】:
抱歉标题不清楚。 我有以下情况:
我有 4 种类型:Type1、Type2、Type3、Type4。 (具有相同的结构:name 和 children)
我还有其他 4 种类型的孩子:Child1、Child2、Child3、Child4。(它们又具有相同的结构:parent 和 value em>)。
条件:Type1 只能有以下类型的子项:Child1; Type2->child2 等等。
如果我在这种情况下使用继承:所有类型都继承自 SuperType,所有子类型都继承自 Children。
public class Children {
}
public class SuperType {
private List<Children> children;
}
public class Type1 extends SuperType {
}
public class Child1 extends Children {
}
Type1 可以有 Child2、Child3、Child4 的子代。这不是我想要的。
您对我可以用于这种情况的图案设计有任何想法吗?
【问题讨论】:
-
父类应该/不影响它可以扩展的类。父类甚至不应该知道存在(ny)子类
-
@Stultuske:你认为这种情况下的继承不是一个合适的方法吗?
-
你说:Type1 可以有孩子......这指向组合,而不是继承。组合是HAS A关系,继承是IS A关系
-
没错。但是所有类型都是相同的结构,所有的孩子都是相同的结构。这就是我想使用继承方法的原因。
-
老师和学生也是同一个结构,但是老师有学生,学生有老师。学生不等于老师
标签: java design-patterns