裝飾者模式:動態地給乙個物件新增一些額外的職責,就增加功能來說,decorator模式比生成子類更為靈活。
:讓decorator物件為自己新增功能。有時候使用concretecomponent的派生類提供核心功能,在這種情況就是用concretecomponent替代了component的功能,而且裝飾者是繼承於concretecomponent的子類。
component
:定義concretecomponent和decorator類要實現的方法,簡單來說如果乙個類繼承於該類就具有裝飾或被裝飾能力。
decorator
:具有特定裝飾功能的類,用來裝飾concretecomponent類。
**故事:小學上學都有成績單,有成績單就要求有家長簽字。考好了一切沒問題,如果考差了,還敢讓家長簽字麼?這個時候就要想個辦法了:要裝飾一下我們的成績單,讓家長看起來這個成績還不錯。具體**如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace wcf_binding
//四年級成績單
public class fouthgradeschoolreport : schoolreport
//家長簽名
public override void sign(string name)
}//修飾的抽象類
public abstract class decorator : schoolreport
//成績單還是要被看到的
public override void report()
//看完還是要簽名的
public override void sign(string name)
}//最高成績修飾
public class highscoredecorator : decorator
//我要匯報最高成績
private void reporthighscore()
//我要在老爸看成績單前告訴他最高成績,否則等他一看,就掄起掃帚揍我,我**還有機會說啊
public override void report()
}//排名情況修飾
public class sortdecorator : decorator
//告訴老爸學校的排名情況
private void reportsort()
//老爸看完成績單後再告訴他,加強作用
public override void report()
}public class father}}
裝飾者設計模式
package 模式練習部分 首先建立,手機介面,然後建立最基本功能的手機,也就是只有接 功能的手機,然後在這個基礎上在設計乙個裝飾類 開始具體的裝飾過程,按照本例中的步驟,下面要做的就是對於具體裝飾者的建立,先有彩鈴,然後開始接 然後在接完 以後,沒有什麼其他的事情了,開始看會兒電視休息一下。建立...
裝飾者 設計模式
裝飾者 設計模式 1.增強乙個類的 功能,給某個類的 某個方法 增強了,重寫方法 2.讓裝飾類 互相裝飾 實現的步驟 1.在裝飾類的 內部 維護乙個 被裝飾類的 引用 最好是父類的引用 例如 bufferedline 內部維護的 是 bufferedreader類的引用 2.讓裝飾類 有乙個 共同的...
裝飾者設計模式
package decorator pattern public inte ce carpackage decorator pattern public class qqimplements car override public void stop package decorator patter...