组合模式Composite Pattern

本文介绍了组合模式的概念及其在处理树形结构中的应用。通过一个类似传销组织的实例来展示如何使用组合模式来统一处理个体和群体对象,使得客户端可以透明地操作复杂的对象结构。

定义(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);
}

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值