Home  >  Article  >  Backend Development  >  dvd.taiwan-sex.com php design mode Decorator decoration mode

dvd.taiwan-sex.com php design mode Decorator decoration mode

WBOY
WBOYOriginal
2016-07-29 08:45:482030browse

Copy code The code is as follows:


/**
* Decoration mode
*
* Dynamically adds some additional responsibilities to an object, which is more flexible than generating subclasses in terms of extended functionality
*/
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 "Process the content on the message board|" .$msg;
}
}
$obj = new MessageBoard();
echo $obj->filter("Be sure to learn the decoration mode
");
// --- The following is used Decoration mode----
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);
}
}
// Filter html
class HtmlFilter extends MessageBoardDecorator
{
public function __construct($ handler)
{
parent::__construct($handler);
}
public function filter($msg)
{
return "Filter out HTML tags|".parent::filter($msg);; // Filter out The processing of HTML tags only adds text without processing at this time
}
}
// Filter sensitive words
class SensitiveFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler);
}
public function filter($msg)
{
return "Filter out sensitive words|".parent::filter($msg); // The processing of filtering out sensitive words is just adding text without processing
}
}
$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard()));
echo $obj->filter("Be sure to learn the decoration mode!
");

The above introduces the dvd.taiwan-sex.com PHP design mode Decorator decoration mode, including the content of dvd.taiwan-sex.com. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn