11.4 还需要注意什么

    1.执行顺序

    如果子节点的执行是有序的,特别要注意对子节点管理和访问的实现;另外还要注意父节点操作和子节点操作的执行顺序,例如上述实现中,我们总是先显示父行信息,然后依次显示子行信息。

    2.存储结构

    存储子节点的结构可以是哈希(Hash)表、数组、链表、树等任何集合结构,读者在实际操作中,可以自行选择效率最高的结构。

    3.缓存

    Composite可以按需提供高速缓存等方式,以提升对子节点的遍历等相关操作的性能。但是注意,如果子节点发生了变化,父节点关于子节点的缓存也随之失效,在执行这些操作时,要提供一种方式告诉父节点缓存已经失效,一般我们可以为子节点定义指向一个父节点引用,这样便于使用父节点缓存失效的相关操作。