PHP 設計模式 裝飾器模式

2021-08-26 23:01:50 字數 780 閱讀 9451

裝飾器類的作用:不使用繼承,也能是物件使用新方法。重點是類例項化出來的物件。

裝飾器類(配菜類)也必須繼承food類,否則就不是裝飾器類了(嗯!就是這樣)

裝飾器: 手抓餅實現。

1:food抽象類 -》cake類

2:food抽象類-》peicai抽象類 -》各種配菜類(有新方法)

3:例項化cake類($obj) 將$obj(舊)注入到配菜類中,賦值給物件$obj(新),則既能使用$obj(舊)中的方法 又能使用$obj(新)的方法

<?php 

header("content-type: text/html; charset=utf-8");

//定義乙個food抽象類。

abstract class food

//餅,繼承自food類,

class cake extends food

function price()

}//配菜也繼承自food類,這是裝飾器模式的格式。

abstract class peicai extends food

} class egg extends peicai

function price()

function shell() }

$a = new cake;

//echo $a->getfood().'

'; $b = new egg($a);

echo $b->getfood().'

'; echo $b->price();

PHP設計模式 裝飾器模式

web開發筆記 www.chhua.com 每日練習 php設計模式 裝飾器模式 裝飾器模式與介面卡模式的作用幾乎是一樣的,要深刻的理解裝飾模式,就一定要記住 裝飾 二字,很明顯,就是在之前類的基礎上進行一下修飾。也就是說,裝飾器模式必須有父類,然後子類對父類進行裝飾。下面用乙個例項來說明一下裝飾器...

php設計模式之裝飾器模式

裝飾者模式動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比 繼承更有彈性的替代方案。有這樣乙個專案,做乙個餐廳訂餐系統。起初的 結構是這樣的。前面有很多beverage的繼承類,現在遇到的問題是牛奶的價錢 了,那麼所有相關的類,我們都要進行調整,比如milk,sugarandmilk類,這...

PHP設計模式之裝飾器模式

修飾模式,是物件導向程式設計領域中,一種動態地往乙個類中新增新的行為的設計模式。就功能而言,修飾模式相比生成子類更為靈活,這樣可以給某個物件而不是整個類新增一些功能。將所有的功能建立在繼承體系上會導致系統中的類越來越多,而且當你又要修改他們的分支的時候,可能還會出現重複 我們來看下面這個例子,為了計...