今天學習下行為模式中的一種:command(命令)模式。
通俗的來講,就是client需要執行一條(或一系列)命令,也可以說要發觸發乙個事件(發乙個訊息),使用該模式,則client傳送訊息時不需要知道訊息的接收者是誰。因為在command物件中,已經關聯了某條訊息的接收者。所以訊息的傳送者僅僅需要知道訊息介面就可以了。看到這個模式,讓我想到了前不久學習的qt中的signal/slot機制。 當某個物件emit signal時,它是無需關心接收者是誰,自然有物件的slot來接收這個signal。connect則是把傳送者和接收者聯絡到了一起。正如以前分析的,這種訊息機制就是動態訊息機制,而c++語言本身的訊息機制是靜態的,也即傳送物件必須要知道接收物件。所以command模式就是用靜態語言模擬了這種動態訊息機制的。
command模式的本質就是用命令本身封裝了接收物件。
設計模式 學習筆記5 工廠模式
本文出自 在簡單工廠模式的 factory,你確實可以建立比薩,但是其他部分 烘烤,切片等可能不同的店會有不同的差異。如果我們要在其他地方開比薩店,比如在北京開比薩店,那麼北京的製作比薩是不一樣風格的,使用這個類的話,可能就要修改 所以把製作比薩的 綁在pizzastore裡,這樣做沒有彈性。那麼要...
設計模式學習系列5 工廠模式
1 前言 先介紹一下物件導向設計的原則 1 ocp 開放關閉原則 軟體對擴充套件是開放的 對修改是關閉的,核心思想 對抽象程式設計,不對實現程式設計 2 dip 依賴倒轉原則 依賴於抽象,而不依賴實現 3 lsp 李氏替換原則 子類都可以替換父類 2 工廠模式構成 uml圖中,所有具體的工廠都從抽象...
設計模式學習系列5 工廠模式
1 前言 先介紹一下物件導向設計的原則 1 ocp 開放關閉原則 軟體對擴充套件是開放的 對修改是關閉的,核心思想 對抽象程式設計,不對實現程式設計 2 dip 依賴倒轉原則 依賴於抽象,而不依賴實現 3 lsp 李氏替換原則 子類都可以替換父類 2 工廠模式構成 uml圖中,所有具體的工廠都從抽象...