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

class UserListLogger implements IObserver
{
 public function onChanged( $sender, $args )
 {
  echo( "'$args' added to user list\n" );
 }
}

$ul = new UserList();
$ul->addObserver( new UserListLogger() );
$ul->addCustomer( "Jack" );
?>
  此代码定义四个元素:两个接口和两个类。IObservable 接口定义可以被观察的对象,UserList 实现该接口,以便将本身注册为可观察。IObserver 列表定义要通过怎样的方法才能成为观察者,UserListLogger 实现 IObserver 接口。图 4 的 UML 中展示了这些元素。


图 4. 可观察的用户列表和用户列表事件日志程序
  如果在命令行中运行它,您将看到以下输出:

% php observer.php
'Jack' added to user list
%
  测试代码创建 UserList,并将 UserListLogger 观察者添加到其中。然后添加一个消费者,并将这一更改通知 UserListLogger。

  认识到 UserList 不知道日志程序将执行什么操作很关键。可能存在一个或多个执行其他操作的侦听程序。例如,您可能有一个向新用户发送消息的观察者,欢迎新用户使用该系统。这种方法的价值在于 UserList 忽略所有依赖它的对象,它主要关注在列表更改时维护用户列表并发送消息这一工作。

  此模式不限于内存中的对象。它是在较大的应用程序中使用的数据库驱动的消息查询系统的基础。

  命令链模式

  命令链 模式以松散耦合主题为基础,发送消息、命令和请求,或通过一组处理程序发送任意内容。每个处理程序都会自行判断自己能否处理请求。如果可以,该请求被处理,进程停止。您可以为系统添加或移除处理程序,而不影响其他处理程序。清单 5 显示了此模式的一个示例。

  清单 5. Chain.php

<?php
interface ICommand
{
 function onCommand( $name, $args );
}

class CommandChain
{
 private $_commands = array();

 public function addCommand( $cmd )
 {
  $this->_commands []= $cmd;
 }

 public function runCommand( $name, $args )
 {
  foreach( $this->_commands as $cmd )
  {
   if ( $cmd->onCommand( $name, $args ) )
    return;
  }
 }
}

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

上一页  [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号