裝飾器模式:
如果已有物件的部分內容或功能性發生改變,但是不需要修改原始物件的結構或不使用繼承,動態的擴充套件乙個物件的功能,則應該使用裝飾器模式。
簡單點說:就是我們不應該去修改已有的類,而是通過建立另外乙個裝飾器類,通過這個裝飾器類去動態的擴充套件其需要修改的內容,這樣做的好處就是————
1、我們可以保證類的層次不會因過多而發生混亂。
2、當我們需求的修改很小時,不用改變原有的資料結構。
<?php
/** * created by phpstorm.
* user: administrator
* date: 2017/8/23
* time: 15:48
*/class user
return $str;
}}//現在需求呼叫returnnames返回的名字首字母大寫
//1.建立裝飾器類
class userdecorator
public function returnpnames()
return $str;
}}//執行**,新增的方法沒有侵入老**,完全不影響老程式的執行,而且又擴充套件了舊的類
$u = new user();
$u->namelist = ['limimi','gaomimi','zhaomimi','wangmimi'];
echo $u->returnnames()."\r\n";
$ud = new userdecorator($u);
echo $ud->returnpnames();
結果d:\myapache\www\demo\guancazhe>php decorator.php
limimi#gaomimi#zhaomimi#wangmimi#
limimi#gaomimi#zhaomimi#wangmimi#
php 裝飾器模式
1.裝飾器 裝飾器的作用 可以給動態物件包裝成靜態的類 在外部給物件新增功能 降低類與類之間的依賴 耦合 實質是轉移依賴,呼叫類與實現類之間的依賴 呼叫類與裝飾器之間的依賴 裝飾器相對穩定,故當實現類功能改變,只需修改裝飾器的內容。其實我覺得就是乙個介面吧,通過介面呼叫實質執行的類。ps 裝飾器可以...
PHP 裝飾器模式
裝飾器模式 如果已有物件的部分內容或功能性發生改變,但是不需要修改原始物件的結構或不使用繼承,動態的擴充套件乙個物件的功能,則應該使用裝飾器模式。簡單點說 就是我們不應該去修改已有的類,而是通過建立另外乙個裝飾器類,通過這個裝飾器類去動態的擴充套件其需要修改的內容,這樣做的好處就是 1 我們可以保證...
php裝飾器模式
不去修改已有的類,而是通過建立另外乙個裝飾器類,通過這個裝飾器類去動態的擴充套件需要修改的內容。inte ce decorator class user 新增裝飾器 public function add decorate decorator decorator 遍歷裝飾器,呼叫裝飾器方法 publ...