JAVA設計模式之組合模式

2021-09-06 13:34:58 字數 1726 閱讀 3170

組合模式——樹形結構的處理。(常見的樹形結構例如:系統的目錄結構)

組合模式(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 顯示節點...