程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 無廢話C#設計模式之十三:Decorator(2)

無廢話C#設計模式之十三:Decorator(2)

編輯:關於C語言

代碼執行結果如下圖:

代碼說明

l Weapon是抽象構件角色。

l Rifle是具體構件角色,實現抽象構件的接口。

l Decorator是裝飾角色。裝飾角色有兩個特點,一是繼承了抽象構件的接口,二是有一個構件角色的實例。

l Enhance和Wear是具體裝飾角色,它們負責給構件附加責任。

l 客戶端在使用裝飾角色的時候並沒有針對抽象構件進行編程,因為我們確實需要使用具體裝飾角色提供的額外方法,這種類型的裝飾叫做半透明裝飾。

何時采用

l 從代碼角度來說,如果你覺得由於功能的交叉擴展不會導致非常多的子類或者非常多的繼承層次的話可以考慮裝飾模式。

l 從應用角度來說,如果你希望動態給類賦予或撤銷一些職責,並且可以任意排列組合這些職責的話可以使用裝飾模式。

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