迭代器和复合模式

当我想为Bob Gu冰淇淋集团收购不同的冰淇淋店时,我对在美国的主导地位的渴望是不可遏制的。 现在我们已经拥有了所有这些美味的产品,现在是时候通过拥有一个让人们修复冰淇淋的网站来继续建立我们的在线形象。

我们的目标是列出每个商店的所有菜单项。 让我们看一下菜单项的代码。

组件是我们的叶子和复合材料都将实现的接口。 它们可能具有类似的功能,例如getElementAttribute,这将使我们能够从每个元素获取类属性。

现在,在我们的叶子和复合材料中,我们实现了这些方法,复合材料中可能会有一个名为hasChildren的方法,对于拥有的每个子代,它可以遍历这些子代,并继续在树中搜索我们要搜索的类名。

您可以看到我们如何将迭代器模式作为组合模式的一部分包括在内。 如果找到复合对象的子代返回不同的数据结构,则可以确保这些复合对象实现了通用的迭代器接口,这样我们就可以将每个复合对象视为相同。