設計模式可能是部落格圈最熱門的話題之一。但是,用來說明每個設計模式的例子通常不是很形象。為了挽救這一點,這篇部落格將用乙個簡單有效的例子來解釋組合模式。
我們不會再重複解釋這個模型的概念。唯一需要記住的是組合模式通常用在乙個樹結構的遞迴操作上。
假設有一棟建築,這個建築有幾層樓,每層樓有幾個房間。
這個建築的神奇之處在於,它沒有乙個總開關。因此,當需要關閉或是開啟整棟樓的燈時,就不得不逐層逐個房間按動開關。
為了改變這種情況,我們需要首先定義乙個包含開關燈操作的基本介面。這個接**們命名為component
,對應於組合模式中的component
。
public inte***ce component
接著,我們定義表示建築的類building,floor和room
。每個類實現該介面,並且實現的邏輯如下:
以下是三個類的內容:
public class building extends arraylistimplements component
}@override
public void switchlightsoff() }}
public class floor extends arraylistimplements component
@override
public void switchlightson()
}@override
public void switchlightsoff() }}
補充說明一下:public class room implements component
@override
public void switchlightson()
@override
public void switchlightsoff()
public boolean islightson()
}
看一下具體的運**況。首先,我們需要新建乙個building(預設情況下,燈是關閉狀態)。之後,呼叫建築的switchlightson
方法,開啟建築中的所有房間的燈。
貓頭鷹的深夜翻譯 分布式系統Toolkit模式
過去幾年容器逐漸成為了打包和部署 的流行的方式。容器映象解決很多現有的打包和部署工具所帶來的問題,初次以外,還為我們提供了構建分布式應用的全新的思路。就如soa提倡將應用拆分為模組化的內聚的服務,容器應當進一步提倡將這些服務拆分為緊密協作的模組化容器。通過構建應用邊界,容器使使用者能夠使用模組化,可...
螃蟹 貓頭鷹和蝙蝠
螃蟹 貓頭鷹和蝙蝠去上惡習糾正班。數年過後,它們都順利畢業並獲得博士學位。不過,螃蟹仍橫行,貓頭鷹仍白天睡覺晚上活動,蝙蝠仍倒懸。這是黃永玉大師的乙個寓言故事,它的寓意很簡單 行動比知識重要。如果一些連珠的妙語打動了你,如果一些文字或新信條啟發了你。那麼,這些別人的文字和經驗都只是乙個開始,更重要的...
螃蟹 貓頭鷹和蝙蝠
螃蟹 貓頭鷹和蝙蝠去上惡習糾正班。數年過後,它們都順利畢業並獲得博士學位。不過,螃蟹仍橫行,貓頭鷹仍白天睡覺晚上活動,蝙蝠仍倒懸。這是黃永玉大師的乙個寓言故事,它的寓意很簡單 行動比知識重要。如果一些連珠的妙語打動了你,如果一些文字或新信條啟發了你。那麼,這些別人的文字和經驗都只是乙個開始,更重要的...