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通过COM使用ADODB的简单例子
Dec 31 PHP
php 表单数据的获取代码
Mar 10 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP读取PPT文件的方法
Dec 10 PHP
yii2中dropDownList实现二级和三级联动写法
Apr 26 PHP
Laravel 队列使用的实现
Jan 08 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 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
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
详解用python生成随机数的几种方法
2019/08/04 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
前台接待员岗位职责
2014/01/02 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
出纳员岗位职责
2014/03/13 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
飞屋环游记观后感
2015/06/08 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
接收函
2019/04/22 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书