组合模式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);
}

猜你喜欢

转载自wdt1988520.iteye.com/blog/1972213
今日推荐