組合模式——樹形結構的處理。(常見的樹形結構例如:系統的目錄結構)
組合模式(composite pattern):組合多個物件形成樹形結構以表示具有「整體—部分」關係的層次結構。組合模式對單個物件(即葉子物件)和組合物件(即容器物件)的使用具有一致性,組合模式又可以稱為「整體—部分」(part-whole)模式,它是一種物件結構型模式。
場景:sunny軟體公司欲開發乙個防毒(antivirus)軟體,該軟體既可以對某個資料夾(folder)防毒,也可以對某個指定的檔案(file)進行防毒。該防毒軟體還可以根據各類檔案的特點,為不同型別的檔案提供不同的防毒方式,例如影象檔案(imagefile)和文字檔案(textfile)的防毒方式就有所差異。
將要進行防毒的目錄結構如下:
sunny資料夾
+-影象資料夾
+-小龍女.jpg
+-張無忌.gif
+-文字檔案夾
+-九陰真經.text
+-葵花寶典.foc
+-笑傲江湖.rmvb
結構圖:
//抽象檔案類:抽象構件
public abstract class abstractfile
//資料夾類:容器構件
public class folder extends abstractfile
public void add(abstractfile file)
public void remove(abstractfile file)
public abstractfile getchild(int i)
@override
public void killvirus() }}
public class imagefile extends abstractfile
@override
public void killvirus()
}
public class textfile extends abstractfile
@override
public void killvirus()
}
public class videofile extends abstractfile
@override
public void killvirus()
}
測試**:
public class main
}
執行結果:
++++對資料夾'sunny資料夾'進行防毒
++++對資料夾'影象資料夾'進行防毒
----對image檔案'小龍女.jpg'進行防毒操作
----對image檔案'張無忌.gif'進行防毒操作
++++對資料夾'文字檔案夾'進行防毒
----對text檔案'九陰真經.text'進行防毒操作
----對text檔案'葵花寶典.foc'進行防毒操作
----對video檔案'笑傲江湖.rmvb'進行防毒操作
java設計模式之組合模式
組合模式 允許你將物件組合成樹形結構來表現 整體 部分 層次結構。組合能讓客戶以一致的方式處理個別物件以及物件組合。組合模式類圖 client 客戶使用component介面操作組合中的物件。component component為組合中的所有物件定義乙個介面,不管是組合還是節點,component...
java設計模式之組合模式
一 組合模式簡介 組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。composite使得使用者對單個物件和組合物件的使用具有一致性。有時候又叫做部分 整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以向處理簡單元素一樣來處理複雜元素,從而使得客戶程式與複雜...
《Java設計模式之組合模式》
組合模式 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。新增節點 public abstract void add component c 刪除節點 public abstract void remove component c 顯示節點...