PHP 裝飾器模式

2021-08-07 07:44:07 字數 945 閱讀 9042

裝飾器模式:

如果已有物件的部分內容或功能性發生改變,但是不需要修改原始物件的結構或不使用繼承,動態的擴充套件乙個物件的功能,則應該使用裝飾器模式。

簡單點說:就是我們不應該去修改已有的類,而是通過建立另外乙個裝飾器類,通過這個裝飾器類去動態的擴充套件其需要修改的內容,這樣做的好處就是————

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...