示例#1
0
abstract class MessageBoardHandler
{
    public function __construct()
    {
    }
    public abstract function filter($msg);
}
class MessageBoard extends MessageBoardHandler
{
    public function filter($msg)
    {
        return "处理留言板上的内容|" . $msg;
    }
}
$obj = new MessageBoard();
echo $obj->filter("一定要学好装饰模式\n");
//以下是用装饰模式
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);
    }
}
//过滤html
abstract class MessageBoardHandler
{
    public function __construct()
    {
    }
    public abstract 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);
    }
}
// 过滤html