學習日記之命令模式和Effective C

2021-09-07 04:59:21 字數 996 閱讀 7389

命令模式(command): 講乙個請求封裝為乙個物件。從而使你可用不同的請求對客戶進行引數化。對請求佇列或記錄請求日誌。以及支援可撤銷的操作。

命令模式長處:

(1),它能較easy地設計乙個命令佇列。

(2)。在須要的情況下。能夠較easy地將命令計入日誌。

(3),同意接收請求的一方決定是否要否決請求。

(4)。能夠easy地實現請求的撤銷和重做。

(5)。因為加進新的詳細命令類不影響其它的類,因此新增新的詳細命令類非常easy。

(6)。命令模式把請求乙個操作的物件與知道怎麼執行乙個操作的物件切割開。

(7)。敏捷開發告訴我們。不要為**加入基於推測的、實際不須要的功能。

假設不清楚乙個系統是否須要命令模式。一般就不要著急去實現它,其實,在須要的時候通過重構實現這個模式並不困難,僅僅有在真正須要如撤銷恢復操作等功能時。把原來的**重構為命令模式才有意義。

effective c++ 之模板和泛型程式設計

1:了解隱式介面和編譯器多型

(1)。classes 和模板都支援介面 (inte***ces)和多型(polymorphism)。

(2)。對 classes 而言介面是顯式的(explicit),以函式簽名為中心。多型則是通過 virtual 函式發生於執行期。

(3),對 template 引數而言。介面是隱式的(implicit),奠基於有效表示式。多型則是通過 template 具現化和函式過載解析(function overloading resolution)發生於編譯期。

2:了解 typename 的雙重意義

(1),宣告 template 引數時,字首keyword class 和 typename 可互換。

(2)。請使用keyword typename 標識巢狀從屬型別名稱。但不得在 base class lists 或 member initialization list 內以它作為 base class 修飾符。

學習日記之單例模式和Effective C

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。1 通常我們能夠讓乙個全域性變數使得乙個物件被訪問,但它不能防止你例項化多個物件。乙個最好的辦法就是,讓類自身負責儲存它的唯一例項。這個類能夠保證沒有其它例項被建立,而且它能夠提供乙個訪問該例項的方法。2 lock...

學習日記之享元模式和Effective C

享元模式 flyweight 運用共享技術有效地支援大量細粒度的物件。1 享元模式能夠避免大量很相似的開銷。在程式設計中,有時須要生成大量細粒度的類例項來表示資料。假設能發現這些例項除了幾個引數外基本上都是同樣的。有時就能大幅度地降低須要例項化的類的數量。假設能把這些引數移到類的外面,在方法呼叫時將...

學習日記之工廠方法模式和Effective C

簡單工廠模式vs工廠方法模式 工廠方法模式 factory method 定義乙個用於建立物件的介面。讓子類決定例項化哪乙個類。工廠方法模式使乙個類的例項化延遲到其子類。工廠方法模式實現時。client須要決定例項化哪乙個工廠來實現對應的類。選擇推斷的問題還是存在的,也就是說,工廠方法模式把簡單工廠...