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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
php实现算术验证码功能
Dec 05 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
PHP RabbitMQ消息列队
May 11 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
模仿OSO的论坛(三)
2006/10/09 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
easyui validatebox验证
2016/04/29 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
重命名批处理python脚本
2013/04/05 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
django页面跳转问题及注意事项
2019/07/18 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
报关员个人职业生涯规划书
2014/03/12 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
主题实践活动总结
2014/05/08 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
2015年新教师工作总结
2015/04/28 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
MySQL七种JOIN类型小结
2021/10/24 MySQL