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 静态化实现代码
Mar 20 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
PHP中使用curl入门教程
Jul 02 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
java解析json方法总结
May 16 PHP
docker-compose部署php项目实例详解
Jul 30 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
详解PHP中的8个魔术常量
Jul 06 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
js图片处理示例代码
2014/05/12 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
pytorch 共享参数的示例
2019/08/17 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
python绘制高斯曲线
2021/02/19 Python
自动化专业个人求职信范文
2013/11/29 职场文书
高中毕业生生活的自我评价
2013/12/08 职场文书
给交警的表扬信
2014/01/12 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
关于期中考试的反思
2014/02/02 职场文书
《太阳》教学反思
2014/02/21 职场文书
一年级学生评语
2014/04/23 职场文书
员工工作表现评语
2014/04/26 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书