1. 程式人生 > >java設計模式之Composite Pattern(組合模式)

java設計模式之Composite Pattern(組合模式)

In ima field 編程 這也 composite 當前 屬性 OS

組合模式是面向可維護性編程的一種常見的設計模式。簡單的說就是一個類裏面有一組當前類組成的collection作為這個類的屬性。這和遞歸有一定的相似。他的目的就是在同類型對象之間建立起樹形層次結構,一個上層對象可以包含多個下層對象。例如一個菜單可以有很多的選項,同時這些選項中也可能包含下一層的菜單,這樣菜單和菜單之間的這種關系就可理解為組合模式。其對應的UML圖可以總結為:

技術分享圖片

由UML圖可以看出,一個具體類實現了一個結構,同時,這個具體類中還包含一個field,這個filed由這同一個接口的實現類組成。這也就構成了我們前面說的同類型的對象,之間的樹形層次結構,上層對象可以包含多個下層對象。

下面我們給出實際代碼體會一下:

技術分享圖片

技術分享圖片

java設計模式之Composite Pattern(組合模式)