裝飾者設計模式

2021-07-04 03:39:25 字數 1506 閱讀 3731

裝飾者模式:動態地給乙個物件新增一些額外的職責,就增加功能來說,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...