|   | 
       
| « | November 2025 | » |  | 日 | 一 | 二 | 三 | 四 | 五 | 六 |   |  |  |  |  |  | 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |  |  |  |  |  |  |  |  
  |   
  
 
 
 
 
 
| 
 blog信息  |  
blog名称: 日志总数:17 评论数量:101 留言数量:-1 访问次数:124020 建立时间:2005年4月19日 |    |    
 
 
 
 
  | 
   
  | 
 
 设计模式之Composite(组合) |  
 
| 
参照该模式写的源码例子
package myprojects.composite;import java.io.*;import java.util.*;import java.util.ArrayList;
abstract class mybase{      public String name;      public Iterator iter() { return null; }      public mybase(String name){       this.name=name;       }             public void print()      {       System.out.println( "mybase"+name + " print called");             }      public boolean add(mybase thismybase)      {       return false;       }       }class Composite extends mybase{ private int i=0;  private ArrayList equipment=new ArrayList();    public Composite(String name){super(name);} public boolean add(mybase equipment) {     this.equipment.add(equipment);     return true;    }    public void print()    {     System.out.println(  name + " print called");    Iterator iter=equipment.iterator();    while(iter.hasNext()) {     ((mybase)iter.next()).print();          }
          }     
 }
 class Chassis extends Composite{public Chassis(String name) { super(name); }//System.out.println( "Chassis"+ name + " print called");//super.print();//}}  class Cabinet extends Composite{public Cabinet(String name) { super(name); }//public void print(){//System.out.println( "Cabinet"+ name + " print called");//super.print();//}}class mydisk extends mybase{public  mydisk(String name){super(name);}public void print(){System.out.println( "mydisk"+ name + " print called");}}   public class Disk{ public static void main(String arg[])  {  Chassis chassis=new Chassis("chassis");   Cabinet cabinet=new Cabinet("cabinet");  mydisk md=new mydisk("mydisk");  chassis.add(md);   chassis.add(md);    chassis.add(md);     chassis.add(md);  cabinet.add(chassis);  Composite com =new Composite("com");  com.add(cabinet);   com.add(cabinet);  com.print();    }        }
转载自: http://www.jdon.com/designpatterns/composite.htm |    |  
| 
 |   
 
  
 |    |