php桥接模式应用案例分析


Posted in PHP onOctober 23, 2019

本文实例讲述了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中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
从wamp到xampp的升级之路
Apr 08 PHP
PHP实现linux命令tail -f
Feb 22 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 #PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 #PHP
基于laravel缓冲cache的用法详解
Oct 23 #PHP
PHP实现简单登录界面
Oct 23 #PHP
laravel框架与其他框架的详细对比
Oct 23 #PHP
laravel清除视图缓存的代码
Oct 23 #PHP
PHP实现简单用户登录界面
Oct 23 #PHP
You might like
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
JS日历 推荐
2006/12/03 Javascript
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python del()函数用法
2013/03/24 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
python实现批量文件重命名
2019/10/31 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python利用faker库批量生成测试数据
2020/10/15 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
UNIX文件类型
2013/08/29 面试题
电大学习个人自我评价范文
2013/10/04 职场文书
自主招生自荐信
2013/12/08 职场文书
保险公司晨会主持词
2014/03/22 职场文书
机关保密承诺书
2014/06/03 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫
Python Flask实现进度条
2022/05/11 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python