设计模式之组合模式
2017-06-19 14:43
176 查看
例题:餐厅菜单新需求导致的遍历困难
添加餐后甜点子菜单结构抽象
需要用树形结构,节点是菜单或子菜单,叶子是菜单项
需要能够在各个菜单项之间游走,遍历
要能够有弹性的在菜单项之间游走
组合模式设计方案
类图
迭代器
public class ComposeIterator implements Iterator { private Stack<Iterator> stack=new Stack<Iterator>(); public ComposeIterator(Iterator iterator) { stack.push(iterator); } @Override public boolean hasNext() { if(stack.empty()) { return false; } Iterator iterator=stack.peek(); if(!iterator.hasNext()) { stack.pop(); return hasNext(); } else { return true; } } @Override public Object next() { if(hasNext()) { Iterator iterator=stack.peek(); MenuComponent menuComponent=(MenuComponent)iterator.next(); stack.push(menuComponent.getIterator()); return menuComponent; } return null; } } SubMenu里面 public Iterator getIterator() { return new ComposeIterator(menuItems.iterator()); }
Code Adrress:
http://download.csdn.net/detail/kaikai_sk/9874436
相关文章推荐
- 设计模式之Composite(组合)
- .NET中的设计模式三:组合模式 选择自 lane_cn 的 Blog
- 结构模式——设计模式之Composite(组合)[转载自http://www.jdon.com/]
- 窥视设计模式之组合模式(composite)
- 设计模式 --- 组合模式(Composite) 精选经验合集
- 设计模式(10)-组合模式(Composite)
- 乐在其中设计模式(C#) - 组合模式(Composite Pattern)
- 设计模式与泡mm的关系之Composite组合模式及组合模式的再思考
- 设计模式之Composite组合设计模式
- 设计模式之Composite(组合)
- 设计模式之Composite(组合)
- 设计模式之Composite(组合)
- .NET实用设计模式:组合模式(Composite)
- 设计模式----Composite(组合)模式
- JUnit|测试驱动|组合设计模式
- .NET中的设计模式三:组合模式
- java设计模式之Composite(组合) (转)
- 窥视设计模式之组合模式(composite)
- 设计模式之Composite(组合)
- 设计模式之Composite(组合)