1. 程式人生 > >路一步步走>> 設計模式八:Composite-組合

路一步步走>> 設計模式八:Composite-組合

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