迭代器与组合模式
2016-09-11 15:29:05 0 举报
深入浅出设计模式--迭代器与组合模式
作者其他创作
大纲/内容
Composite
operation()add(Component)remove(Component)getChild(int)
Client
叶节点继承了像add(),remove()和getChild()这样的方法,这些方法对叶节点或许没有意义。
具体聚合持有一个对象的集合,并实现一个方法,利用此方法返回集合的迭代器。
ConcreteIterator
hasNext()next()remove()
一个共同的接口供所有的聚合使用,将客户代码从集合对象的实现解耦了。
具体迭代器负责管理目前遍历的位置。
Aggregate
createIterator()
Component
客户使用Component 接口操作组合中的对象
每一个具体聚合都要负责实例化一个具体迭代器,此迭代器能够遍历对象集合。
Iterator
ConcreteAggregate
迭代器模式
叶节点没有子元素,通过实现Composite支持的操作,定义了组合内元素的行为。
Component 为组合中的所有对象定义一个接口,不管是组合还是叶节点。
Leaf
operation()
组合模式
Composite(组合类)的角色是要定义组件的行为,而这样的组件具有子节点。
所有迭代器必须实现的接口,它包含一些方法,利用这些方法可以在集合元素之间游走。
0 条评论
下一页