1.是什么
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。 组合模式可以让客户端像修改配置文件一样简单的完成本来需要流程控制语句来完成的功能。 经典案例:系统目录结构,网站导航结构等。
2.有什么用
组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。关于分级数据结构的一个普遍性的例子是你每次使用电脑时所遇到的:文件系统。文件系统由目录和文件组成。每个目录都可以装内容。目录的内容可以是文件,也可以是目录。按照这种方式,计算机的文件系统就是以递归结构来组织的。如果你想要描述这样的数据结构,那么你可以使用组合模式Composite。
3.怎么用
示例包含子菜单的菜单类,是一个树形结构,每一层都可以当做一个菜单来对待。
public interface IMenu {
void showMenu();
}
import java.util.List;
public class Menu implements IMenu {
private String name;
public Menu(String name) {
this.name = name;
}
private List<IMenu> childMenu;
@Override
public void showMenu() {
System.out.println(this.name);
}
/**
* @return the childMenu
*/
public List<IMenu> getChildMenu() {
return childMenu;
}
/**
* @param childMenu
* the childMenu to set
*/
public void setChildMenu(List<IMenu> childMenu) {
this.childMenu = childMenu;
}
}
网友评论