PHP设计模式之装饰者模式
生活随笔
收集整理的這篇文章主要介紹了
PHP设计模式之装饰者模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php/*
裝飾者模式動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。
*/
header("Content-type:text/html; charset=utf-8");//使用繼承進行組合abstract class MessageBoardHandler
{public function __construct(){}abstract public function filter($msg);
}class MessageBoard extends MessageBoardHandler
{public function filter($msg){return "處理留言板上的內容".$msg;}
}$obj = new MessageBoard();
echo $obj -> filter("一定要學好裝飾模式<br/>");// --- 以下是使用裝飾模式 ----
// 定義裝飾者類----// 引入被裝飾殾對象---
class MessageBoardDecorator extends MessageBoardHandler
{private $_handler = null;public function __construct($handler){parent::__construct();$this -> _handler = $handler;}public function filter($msg){return $this -> _handler -> filter($msg);}}//----class HtmlFilter extends MessageBoardDecorator
{public function __construct($handler){parent::__construct($handler);}public function filter($msg){return "過濾掉HTML標簽|".parent::filter($msg);}
}class SensitiveFilter extends MessageBoardDecorator
{public function __construct($handler){parent::__construct($handler);}public function filter($msg){return "過濾掉HTML|".parent::filter($msg);// 過濾掉敏感詞的處理這時只是加個文字沒有進行處理
}}$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard()));echo $obj->filter("一定學好裝飾模式<br/>");
?
總結
以上是生活随笔為你收集整理的PHP设计模式之装饰者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu安装PostgreSQl
- 下一篇: php表单时间转换为时间戳-175