定义(GoF《设计模式》):将对象组合成树形结构一表示“部分整体”的层次结构,使的用户对单个对象和使用具有一致性。
组合模式:使用我在处理树形结构中的复杂等级机构时非常有用,它可以使得客户端处理复杂对象就想处理简单对象一样,从而使得客户端与复杂对象之间解耦。 比如:递归数据结构、分级数据结构、树形结构。 例:树形菜单,文件系统。

想到组合模式的实现我就想到了传销,中国大多数直销企业打着直销的名,干着传销的事。想必大家都知道传销是怎么一回事。最上面一个团队发展他们的下面的下线,他们的下线在发展下线,他们下线的下线在发展下线,这样不断的循环,而他们的收入就是从下线的收入中提取。 哈哈 这才真正体现了“以人为本”,人越多钱越多.........
//传销核心实现
public abstract class Group{ //团队模型
public String name;
public List<Group> groups;
public Group(String name){
this.name=name;
this.groups=new ArrayList<Group>();
}
public abstract void add(Group group);
public abstract void remove(Group group);
public abstract void display(Group group);
}
public class SummitGroup extends Group{
public SummitGroup(String name){
super(name);
}
public void add(Group group){
this.groups.add(group);
}
public void remove(Group group){
this.groups.remove(group);
}
public void display(Group group){
//.................
}
}
public class OneGroup extends Group{
public OneGroup(String name){
super(name);
}
public void add(Group group){
this.groups.add(group);
}
public void remove(Group group){
this.groups.remove(group);
}
public void display(Group group){
//.................
}
}
main(){
Group summit=new SummitGroup("顶级团队")
Group one1=new OneGroup("一级团队");
Group one2=new OneGroup("一级团队");
Group two1=new TwoGroup("二级团队");
Group two2=new TwoGroup("二级团队");
Group two3=new TwoGroup("二级团队")
one1.add(two1);
one2.add(two2);
one2.add(two3);
summit.add(one1);
summit.add(one2);
}
本文介绍了组合模式的概念及其在处理树形结构中的应用。通过一个类似传销组织的实例来展示如何使用组合模式来统一处理个体和群体对象,使得客户端可以透明地操作复杂的对象结构。
1163

被折叠的 条评论
为什么被折叠?



