手机
当前位置:查字典教程网 >编程开发 >php教程 >php设计模式 Decorator(装饰模式)
php设计模式 Decorator(装饰模式)
摘要:复制代码代码如下:

复制代码 代码如下:

<?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);

}

}

// 过滤html

class HtmlFilter extends MessageBoardDecorator

{

public function __construct($handler)

{

parent::__construct($handler);

}

public function filter($msg)

{

return "过滤掉HTML标签|".parent::filter($msg);; // 过滤掉HTML标签的处理 这时只是加个文字 没有进行处理

}

}

// 过滤敏感词

class SensitiveFilter extends MessageBoardDecorator

{

public function __construct($handler)

{

parent::__construct($handler);

}

public function filter($msg)

{

return "过滤掉敏感词|".parent::filter($msg); // 过滤掉敏感词的处理 这时只是加个文字 没有进行处理

}

}

$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard()));

echo $obj->filter("一定要学好装饰模式!<br/>");

【php设计模式 Decorator(装饰模式)】相关文章:

php使用cookie实现记住用户名和密码实现代码

PHP设计模式之适配器模式代码实例

PHP安全配置

一个oracle+PHP的查询的例子

php微信公众平台开发类实例

操作Oracle的php类

学习php设计模式 php实现装饰器模式(decorator)

php解析字符串里所有URL地址的方法

一个用于MySQL的PHP XML类

php实现格式化多行文本为Js可用格式

精品推荐
分类导航