裝飾器模式

2022-09-20 04:24:09 字數 1353 閱讀 9988

區域類:

1.平原類(經驗值2)

1.1乾淨的平原類(經驗值加2)

1.2汙染的平原類(經驗值減4)

1.3乾淨又汙染的平原類

2.高原類(經驗值3)

2.1乾淨的高原類(經驗值加2)

2.2汙染的高原類(經驗值減4)

2.3乾淨又汙染的高原類

裝飾器模式類圖:

echo "普通平原的經驗值:".$_plains->exprience();

echo "

";$_cleanplains = new clean(new plains());

echo '乾淨平原的經驗值:'.$_cleanplains->exprience();

echo "

";$_cleanhighland = new clean(new highland());

echo '乾淨高原的經驗值:'.$_cleanhighland->exprience();

echo "

";$_cleanpollutedplains = new clean(new polluted(new plains()));

echo "即乾淨又汙染的平原的經驗值:".$_cleanpollutedplains->exprience();

?>

裝飾模式的特點:

1.裝飾物件和真實物件有相同的介面。這樣客戶端物件就可以以和真實物件相同的方式

和裝飾物件互動。

. 2.裝飾物件包含乙個真實物件的索引(reference)

. 3.裝飾物件接受所有的來自客戶端的請求。它把這些請求**給真實的物件。

. 4.裝飾物件可以在**這些請求以前或以後增加一些附加功能。這樣就確保了在執行

時,不用修改給定物件的結構就可以在外部增加附加的功能。在物件導向的設計中,通常是

通過繼承來實現對給定類的功能擴充套件。

裝飾器模式

大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...

裝飾器模式

裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...

裝飾器模式

一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...