package com.test.DPs.JieGou.Composite;
/**
* 结构型:Composite-组合 组合:作用面为 对象
*
* 用途:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。
* 常用于-“文件夹”或“树”
*
*/
abstract class component{}
class File extends component {String filename;}
class Folder extends component{
component[] files;
String foldername;
public Folder(component[] source){ files = source; }
public void scan(){
for(component f: files){
if(f instanceof File){
System.out.println("File "+((File)f).filename);
}else if(f instanceof Folder){
Folder e = (Folder)f;
System.out.println("Folder "+e.foldername);
e.scan();
}
}
}
}