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

命令模式(Command) 講一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化,對請求隊列或記錄請求日誌,以及支持可撤銷的操作。


命令模式優點:

(1),它能較容易地設計一個命令隊列。

(2),在需要的情況下,可以較容易地將命令計入日誌。

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

(4),可以容易地實現請求的撤銷和重做。

(5),由於加進新的具體命令類不影響其他的類,因此增加新的具體命令類很容易。

(6),命令模式把請求一個操作的對象與知道怎麼執行一個操作的對象分割開。

(7),敏捷開發告訴我們,不要爲代碼添加基於猜測的、實際不需要的功能。如果不清楚一個系統是否需要命令模式,一般就不要着急去實現它,事實上,在需要的時候通過重構實現這個模式並不困難,只有在真正需要如撤銷恢復操作等功能時,把原來的代碼重構爲命令模式纔有意義。


Effective C++ 之模板和泛型編程


1:瞭解隱式接口和編譯器多態

(1),classes 和模板都支持接口 (interfaces)和多態(polymorphism)。

(2),對 classes 而言接口是顯式的(explicit),以函數簽名爲中心。多態則是通過 virtual 函數發生於運行期。

(3),對 template 參數而言,接口是隱式的(implicit),奠基於有效表達式。多態則是通過 template 具現化和函數重載解析(function overloading resolution)發生於編譯期。


2:瞭解 typename 的雙重意義

(1),聲明 template 參數時,前綴關鍵字 class 和 typename 可互換。

(2),請使用關鍵字 typename 標識嵌套從屬類型名稱;但不得在 base class lists 或 member initialization list 內以它作爲 base class 修飾符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章