php设计模式 Decorator(装饰模式)
2015-01-24信息快讯网
动态的给一个对象添加一些额外的职责,就扩展功能而言比生成子类方式更为灵活
<?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/>");
php5.3中连接sqlserver2000的两种方法(com与ODBC)
PHP中函数rand和mt_rand的区别比较
zend framework配置操作数据库实例分析
windows下zendframework项目环境搭建(通过命令行配置)
PHP gbk环境下json_dencode传送来的汉字
PHP去掉从word直接粘贴过来的没有用格式的函数
域名和cookie问题(域名后缀)
记录PHP错误日志 display_errors与log_errors的区别
php在程序中将网页生成word文档并提供下载的代码
Linux下CoreSeek及PHP扩展模块的安装
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
PHP 之Section与Cookie使用总结
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
巧用php中的array_filter()函数去掉多维空值的代码分享
比较discuz和ecshop的截取字符串函数php版
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
php设计模式 DAO(数据访问对象模式)
php设计模式 Delegation(委托模式)
php设计模式 Factory(工厂模式)
php设计模式 Strategy(策略模式)
php设计模式 Command(命令模式)
php设计模式 Composite (组合模式)
php设计模式 Mediator (中介者模式)
PHP array操作10个小技巧分享
php设计模式 Command(命令模式)
php在页面中调用fckeditor编辑器的方法
PHP中遍历stdclass object的实现代码
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
rephactor 优秀的PHP的重构工具
使ecshop模板中可引用常量的实现方法
php自动获取字符串编码函数mb_detect_encoding
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
php中在PDO中使用事务(Transaction)
php 数组排序 array_multisort与uasort的区别