程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 設計模式C++實現——裝飾者模式

設計模式C++實現——裝飾者模式

編輯:C++入門知識

模式定義:

裝飾者模式動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。

裝飾者和被裝飾者有相同的超累類型。

可以用一個或多個裝飾者包裝一個對象。

既然裝飾者和被裝飾者對象有相同的超累類型,所以在任何需要原始對象(被包裝的)的場合,可以用裝飾過的對象代替它。

裝飾者可以委托被裝飾者的行為之前與或之後,加上自己的行為,以達到特定的目的。

對象可以在任何時候被裝飾,所以可以在運行時動態地、不限量地用你喜歡的裝飾者來裝飾對象。

模式結構:

\

舉例:

購買咖啡時,可以在其中加入各種調料,例如:蒸奶(Steamed Milk),豆漿(Soy),摩卡(Mocha)或覆蓋奶泡。咖啡館會根據所加入的調料收取不同的費用。

解決方法:我們以飲料為主體,然後在運行時以調料來裝飾飲料。比方說顧客想要摩卡和奶泡深焙咖啡,那麼,要做的是:拿一個深焙咖啡(DarkRoast)對象,以摩卡(Mocha)對象裝飾它,以奶泡對象裝飾它,調用cZ喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vc3QoKbe9t6ijrLKi0sDAtc6vzdC9q7X3wc+1xLzbx66808nPyKWhozwvcD4KPGgxPlVNTMnovMajujwvaDE+CjxwPjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140607/20140607090958269.jpg" alt="\">

編程實現及執行結果:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved