php桥接模式应用案例分析

 更新时间:2019年10月23日 09:57:22   作者:学知无涯  
这篇文章主要介绍了php桥接模式应用,结合具体案例形式分析了php桥接模式原理及信息发送相关应用技巧,需要的朋友可以参考下

本文实例讲述了php桥接模式应用。分享给大家供大家参考,具体如下:

桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。

示例:

当一个信息时

根据发送渠道分为:QQ消息、email消息、短信消息等
根据消息类型分为:普通、警告、危急等
每种消息都有三种类型(普通QQ消息、警告QQ消息、危急QQ消息...),
每种情况单独写一个类就需要写九个,如果扩展一个类型,就需要再写三个类。
使用桥接模式,可以减少类的数量,易扩展

abstract class info{
  public $msgClass = null;
  public function __construct($obj){
    $this->msgClass = $obj;
  }
  abstract function msg();
  public function send($to,$content){
    return $this->msg() . $this->msgClass->send($to,$content);
  }
}
//QQ信息
class qq_msg{
  public function send($to,$content){
    return '【QQ消息】发送给:'.$to.',内容:'.$content;
  }
}
//邮件信息
class email_msg{
  public function send($to,$content){
    return '【Email消息】发送给:'.$to.',内容:'.$content;
  }
}
//短信消息
class sms_msg{
  public function send($to,$content){
    return '【短信消息】发送给:'.$to.',内容:'.$content;
  }
}
//普通消息
class common_info extends info{
  public function msg(){
    return '【普通】';
  }
}
//警告消息
class warning_info extends info{
  public function msg(){
    return '【警告】';
  }
}
//危急消息
class danger_info extends info{
  public function msg(){
    return '【危急】';
  }
}
$a = new common_info(new email_msg());
$res = $a->send('zhang san','好好学习');
var_dump($res);
$a = new warning_info(new sms_msg());
$res = $a->send('zhang san','好好学习');
var_dump($res);

运行结果:

string(54) "【普通】【Email消息】发送给:zhang san,内容:好好学习"
string(53) "【警告】【短信消息】发送给:zhang san,内容:好好学习"

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    这篇文章主要介绍了PHP使用PDO创建MySQL数据库、表及插入多条数据操作,结合实例形式总结分析了php基于pdo的mysql数据库创建、数据表创建以及多条数据插入操作相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • php.ini中的php-5.2.0配置指令详解

    php.ini中的php-5.2.0配置指令详解

    简介本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解, 在原有 php.ini 基础上增加了一些实用模块的配置说明,同时对文件内容的安排进行了调整。 由于作者不喜欢 no-free 的玩意儿,所以删除了除 MySQL 和 PostgreSQL 以外的其他数据库模块配置选项。
    2008-03-03
  • PHP实现的获取文件mimes类型工具类示例

    PHP实现的获取文件mimes类型工具类示例

    这篇文章主要介绍了PHP实现的获取文件mimes类型工具类,结合实例形式分析了php针对文件mimes类型的相关判断操作技巧,需要的朋友可以参考下
    2018-04-04
  • php生成短网址/短链接原理和用法实例分析

    php生成短网址/短链接原理和用法实例分析

    这篇文章主要介绍了php生成短网址/短链接原理和用法,结合实例形式分析了php生成短网址/短链接的基本原理、实现方法与相关注意事项,需要的朋友可以参考下
    2020-05-05
  • php基于PDO实现功能强大的MYSQL封装类实例

    php基于PDO实现功能强大的MYSQL封装类实例

    这篇文章主要介绍了php基于PDO实现功能强大的MYSQL封装类,结合完整实例形式分析了php基于pdo实现mysql数据库连接、增删改查、事务等操作的方法,需要的朋友可以参考下
    2017-02-02
  • php中使用Imagick实现图像直方图的实现代码

    php中使用Imagick实现图像直方图的实现代码

    玩过单反相机的人应该都知道图像直方图(Image Histogram),简单点说,它通过计算每个色阶在总像素中所占的比例来反映图像的曝光情况。
    2011-08-08
  • php 删除一个数组中的某个值.兼容多维数组!

    php 删除一个数组中的某个值.兼容多维数组!

    php中删除一个数组中的某个值.兼容多维数组,需要的朋友可以参考下
    2012-02-02
  • php自动载入类用法实例分析

    php自动载入类用法实例分析

    这篇文章主要介绍了php自动载入类用法,结合实例形式分析了php自动载入类的原理、用法与相关注意事项,需要的朋友可以参考下
    2016-06-06
  • php 模拟 asp.net webFrom 按钮提交事件的思路及代码

    php 模拟 asp.net webFrom 按钮提交事件的思路及代码

    这篇文章主要介绍了php模拟asp.net webFrom 按钮提交事件的思路及代码,有需要的朋友可以参考一下
    2013-12-12
  • 详解php的socket通信

    详解php的socket通信

    这篇文章通过案例演示详细介绍了php的socket通信,对每一段代码进行了分析,每一步骤都配有详细说明,感兴趣的的朋友可以参考下
    2015-08-08

最新评论