本人是一個(gè)模式學(xué)習(xí)的新手,學(xué)習(xí)到裝飾模式的時(shí)候,我想到了一個(gè)問(wèn)題,我是否可以利用一個(gè)屬性值$message來(lái)對(duì)內(nèi)容進(jìn)行一些存儲(chǔ),就編下了下面的代碼,始終沒(méi)辦法找到原因,我想得到的結(jié)果是:html過(guò)濾敏感詞匯過(guò)濾測(cè)試一下 但是結(jié)果卻是html過(guò)濾測(cè)試一下,于是我就思考是否是沒(méi)有將$msg存到$message中,但是但是為什么結(jié)果又是html過(guò)濾測(cè)試一下,中斷測(cè)試也沒(méi)能找到答案,所以再這里想得到各位的幫助,一起討論討論這段代碼,<?php abstract class messageDetail { abstract function filter($msg); } class setmessage extends messageDetail { public function filter($msg) { return $msg; } } class messageHandle extends messageDetail { public $message; public $obj; public function __construct($obj) { $this -> obj = $obj; } public function filter($msg) { $this -> message = $msg; } } class htmlFilter extends messageHandle { public function filter($msg) { parent::filter($msg); return 'html過(guò)濾'.$this->message; } } class ensitiveFilter extends messageHandle { public function filter($msg) { parent::filter($msg); return '敏感詞匯過(guò)濾'.$this->message; } } $obj = new htmlFilter(new ensitiveFilter(new setmessage())); echo $obj -> filter('測(cè)試一下');
關(guān)于裝飾模式引發(fā)的思考
千萬(wàn)里不及你
2019-03-22 23:15:14