设为首页 加入收藏 网站首页
休闲娱乐
军事·社会百态·娱乐八卦·校园
体育·美女写真·幽默笑话·游戏
综合·在线视频·搞笑图片·灵异
两性生活
两性知识·性爱技巧
情色实录·两性图片
女性健康·同性之恋
电脑网络
网络编程·网页制作·软件教学
操作系统·图形图象·冲浪宝典
网络安全·邮件系统·认证考试
热点专题
芙蓉·真人漫画
72式·欲望都市
帅哥·人体彩绘
您现在的位置: 世纪中国 >> 网络编程 >> PHP教学 >> php技巧 >> 教程正文
更好的构造开发模板 五种PHP设计模式
作者:中国图霸    教程来源:网络    点击数:    更新时间:2007-1-1
  return true;
 }
}

class MailCommand implements ICommand
{
 public function onCommand( $name, $args )
 {
  if ( $name != 'mail' ) return false;
  echo( "MailCommand handling 'mail'\n" );
  return true;
 }
}

$cc = new CommandChain();
$cc->addCommand( new UserCommand() );
$cc->addCommand( new MailCommand() );
$cc->runCommand( 'addUser', null );
$cc->runCommand( 'mail', null );
?>
  此代码定义维护 ICommand 对象列表的 CommandChain 类。两个类都可以实现 ICommand 接口 —— 一个对邮件的请求作出响应,另一个对添加用户作出响应。 图 5 给出了 UML。


图 5. 命令链及其相关命令
  如果您运行包含某些测试代码的脚本,则会得到以下输出:

% php chain.php
UserCommand handling 'addUser'
MailCommand handling 'mail'
%
  代码首先创建 CommandChain 对象,并为它添加两个命令对象的实例。然后运行两个命令以查看谁对这些命令作出了响应。如果命令的名称匹配 UserCommand 或 MailCommand,则代码失败,不发生任何操作。 为处理请求而创建可扩展的架构时,命令链模式很有价值,使用它可以解决许多问题。

  策略模式

  我们讲述的最后一个设计模式是策略 模式。在此模式中,算法是从复杂类提取的,因而可以方便地替换。例如,如果要更改搜索引擎中排列页的方法,则策略模式是一个不错的选择。思考一下搜索引擎的几个部分 —— 一部分遍历页面,一部分对每页排列,另一部分基于排列的结果排序。在复杂的示例中,这些部分都在同一个类中。通过使用策略模式,您可将排列部分放入另一个类中,以便更改页排列的方式,而不影响搜索引擎的其余代码。

  作为一个较简单的示例,清单 6 显示了一个用户列表类,它提供了一个根据一组即插即用的策略查找一组用户的方法。

  清单 6. Strategy.php

<?php
interface IStrategy
{
 function filter( $record );
}

class FindAfterStrategy implements IStrategy
{
 private $_name;

 public function __construct( $name )
 {
  $this->_name = $name;
 }

 public function filter( $record )
 {
  return strcmp( $this->_name, $record ) <= 0;
 }
}

class RandomStrategy implements IStrategy
{
 public function filter( $record )
 {
  return rand( 0, 1 ) >= 0.5;
 }
}

上一页  [1] [2] [3] [4] [5] [6] 下一页

分类推荐
社会 社会 娱乐 军事 校园
幽默 体育 女性 专题
电脑 编程 网页 软件 系统
安全 图象 冲浪 认证
搞笑 人物 动物 物品 表情
签名 色图 漫画 奇闻
美女 明星 清纯 自拍 欧美
丝袜 卡通 性感 走光
两性 知识 性图 孕育 技巧
同性 单身 情感 实录
视频 写真 搞笑 MTV 翻唱
写实 片段 游戏 综艺
php技巧热门文章
普通教程 PHP用户指南-cookies部分
普通教程 PHP对文本数据库的基本操作方法
普通教程 WAP与PHP程序设计之基础篇
普通教程 PHP 5.0中多态性的实现方案浅析
普通教程 用PHP读取和编写XML DOM
普通教程 用新PHP插件实现MySQL为基础的
普通教程 PHP5中PDO的简单使用
普通教程 如何利用PHP和CSS改变网页文字
普通教程 PHP中使用crypt()实现用户身份
普通教程 通过缓存数据库结果提高PHP性能
普通教程 PHP5中的this,self和parent关键
普通教程 利用PHP的OOP特性实现数据保护
普通教程 ppform还真是个不错的工具 — 
普通教程 PHP has encountered an Acces
普通教程 向普通人加密 用PHP程序保护数
普通教程 怎样才能成为PHP高手?学会懒惰
普通教程 Linux操作系统中用PHP构建网站
普通教程 PHP 中的 SimpleXML 处理
普通教程 更好的构造开发模板 五种PHP设
普通教程 怎样在PHP 中运用 SimpleXML 处

  广东广州海珠区 世纪网络工作室 版权所有 上海电信提供网络带宽
信箱: 9297659@qq.com 粤ICP备06113754号