建立杂交果树



我有了这些接口和类:

代码:

interface Tree extends Cloneable { int size(); }
class Fruit implements Tree {
@Override public int size() { 
return this.size();
}
}
class Branch implements Tree {
private List<Tree> children = new LinkedList<Tree>();
public List<Tree> getChildren() { return Collections.unmodifiableList(children); }
public void addChild(Tree tree) { children.add(tree); }
@Override public int size() { 
int size = 0;
for(Tree tree: children) size += tree.size();
return size;
}
}
class Mango extends Fruit { /* intentionally left empty */ }
class Peach extends Fruit { /* intentionally left empty */ }

我需要创建构建这种混合树的代码:

  • 树的主干(主干)

    • 两个芒果的树枝

    • 另一个分支

      • 有两个芒果的(子)树枝

      • 一个桃子

我得到了第一部分:

分支主干= new Branch();

但不确定如何编码下一部分,有人能帮助我吗?

您需要创建每个其他对象并将它们添加到主干中。使用Branch.

中定义的addChild(Tree tree)方法。

一些伪代码:

make a branch for the trunk
make a branch
make two mangoes
add mangoes to branch
add the mango branch to the trunk
make a branch
make a peach
add peach to branch
make a sub-branch
make two mangoes
add mangoes to sub-branch
add sub-branch to branch
add branch to trunk

这是非常程序化的,但可能是给定代码的最直接的方法。如果可能的话,我建议你考虑改变设计,但如果这是一个家庭作业,你可能会被它困住。

这个结构似乎或多或少符合复合模式,正如我所读的。

相关内容

  • 没有找到相关文章

最新更新