我们需要一种类似树形的结构, 让其可以容纳/适应菜单, 子菜单以及菜单项.
我们还需要维护一种可以在该结构下遍历所有菜单的方法, 要和使用遍历器一样简单....针对需求我们可以创建出一种树形结构, 它可以把嵌套的菜单或菜单项在相同的结构下进行处理.
组合和单个对象是指什么呢?...客户Client, 使用Component来操作组合中的对象.
Component定义了所有对象的接口, 包括组合节点与叶子....客户可以对某种类型的节点做出毫无意义的操作, 当然了, 这也是设计的决定.
组合迭代器
服务员现在想打印所有的菜单, 或者打印出所有的素食菜单项.
这里我们就需要实现组合迭代器....请仔细看下面这个组合迭代器(遍历器)的代码, 一定要弄明白, 这里面就是递归, 递归:
using System;
using System.Collections;
using System.Collections.Generic