貓頭鷹的深夜翻譯 使用組合模式來開關燈

2021-09-14 02:05:54 字數 1460 閱讀 6641

設計模式可能是部落格圈最熱門的話題之一。但是,用來說明每個設計模式的例子通常不是很形象。為了挽救這一點,這篇部落格將用乙個簡單有效的例子來解釋組合模式。

我們不會再重複解釋這個模型的概念。唯一需要記住的是組合模式通常用在乙個樹結構的遞迴操作上。

假設有一棟建築,這個建築有幾層樓,每層樓有幾個房間。

這個建築的神奇之處在於,它沒有乙個總開關。因此,當需要關閉或是開啟整棟樓的燈時,就不得不逐層逐個房間按動開關。

為了改變這種情況,我們需要首先定義乙個包含開關燈操作的基本介面。這個接**們命名為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提倡將應用拆分為模組化的內聚的服務,容器應當進一步提倡將這些服務拆分為緊密協作的模組化容器。通過構建應用邊界,容器使使用者能夠使用模組化,可...

螃蟹 貓頭鷹和蝙蝠

螃蟹 貓頭鷹和蝙蝠去上惡習糾正班。數年過後,它們都順利畢業並獲得博士學位。不過,螃蟹仍橫行,貓頭鷹仍白天睡覺晚上活動,蝙蝠仍倒懸。這是黃永玉大師的乙個寓言故事,它的寓意很簡單 行動比知識重要。如果一些連珠的妙語打動了你,如果一些文字或新信條啟發了你。那麼,這些別人的文字和經驗都只是乙個開始,更重要的...

螃蟹 貓頭鷹和蝙蝠

螃蟹 貓頭鷹和蝙蝠去上惡習糾正班。數年過後,它們都順利畢業並獲得博士學位。不過,螃蟹仍橫行,貓頭鷹仍白天睡覺晚上活動,蝙蝠仍倒懸。這是黃永玉大師的乙個寓言故事,它的寓意很簡單 行動比知識重要。如果一些連珠的妙語打動了你,如果一些文字或新信條啟發了你。那麼,這些別人的文字和經驗都只是乙個開始,更重要的...