<?php
//桥接模式
abstract class info{
protected $send=null; public function __construct($send){
$this->send=$send;
} abstract public function msg($content);
public function send($to,$content){
$content=$this->msg($content);
$this->send->send($to,$content);
}
}
class zn{
public function send($to,$content){
echo '站内信给',$to,'<br>','内容是',$content;
}
}
class email{
public function send($to,$content){
echo 'email给',$to,'<br>','内容是',$content;
}
}
class sms{
public function send($to,$content){
echo 'sms给',$to,'<br>','内容是',$content;
}
}
class commoninfo extends info{
public function msg($content){
return '普通'.$content;
}
}
class warninfo extends info{
public function msg($content){
return '紧急'.$content;
}
}
class dangerinfo extends info{
public function msg($content){
return '特急'.$content;
}
}
//用站内信发普通信息
$commoninfo=new commoninfo(new zn());
$commoninfo->send('小明','该去吃饭了');
//用手机发送特急信息
$dangerinfo=new dangerinfo(new sms());
$dangerinfo->send('小刚','紧急回家');

php桥接设计模式的更多相关文章

  1. 桥接设计模式(Bridge)

    Bridge??? Bridge的意思是"桥梁".就像在现实世界中,桥梁的功能是将河流的两侧连接起来一样,Bridge模式的作用也是将两样东西连接起来,它们分别是类的功能层次结构和 ...

  2. Java设计模式系列之桥接模式

    桥接模式(Bridge)的定义 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?这就要使用桥接模式 将抽象部分与它的实现部分分离,使它们都可以独立地 ...

  3. 3wwang的2019计划

    1.探究osg类生物----系列(35天) 已完结 [置顶]探索未知种族之osg类生物[目录]​www.3wwang.cn 2.osg中的设计模式---系列(15天) 正在创作... osg中抽象工厂 ...

  4. [转]编译防火墙——C++的Pimpl惯用法解析

    impl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解耦的方法.这个技巧可以避免在头文件中暴露私有细节(见下图1),因此是促进AP ...

  5. 第六篇 ANDROID窗口系统机制之显示机制

    第六篇 ANDROID窗口系统机制之显示机制 ANDROID的显示系统是整个框架中最复杂的系统之一,涉及包括窗口管理服务.VIEW视图系统.SurfaceFlinger本地服务.硬件加速等.窗口管理服 ...

  6. C++11_shared_ptr

    版权声明:本文为博主原创文章,未经博主允许不得转载. shared_ptr智能指针的一种,它的使用类似于auto_ptr. shared_ptr它有两个指针,一个指向引用计数,一个指向data.由于拥 ...

  7. jQuery 技术揭秘

    1.平时jquery调用页: index.html : <!DOCTYPE html> <html lang="en"> <head> < ...

  8. 编译防火墙——C++的Pimpl惯用法解析

    http://blog.csdn.net/lihao21/article/details/47610309 Pimpl(pointer to implementation, 指向实现的指针)是一种常用 ...

  9. JAVA日志发展史

    JAVA日志发展史 第一阶段 2001年以前,Java是没有日志库的,打印日志全凭System.out和System.err 缺点: 产生大量的IO操作同时在生产环境中无法合理的控制是否需要输出 输出 ...

随机推荐

  1. javax.el.PropertyNotFoundException 出错

    之所以是把他记下来,是因为这个低级错误 害的我找了老半天. 后台传了对象到页面,在页面中循环遍历获得对象某个属性值 如下: <c:forEach items="${resultMap. ...

  2. SCCM 2012 R2安装部署过程和问题(一)

    在进行Windows Server 2012 R2虚拟化测试前,由于需要安装,部署和管理很多的服务器,自然会想到该如何提高效率和有效的管理.在Windows Server 2008的时代微软已经提供称 ...

  3. jQuery validator自定义

    项目中接触到validator,记录下 jQuery.validator.addMethod("isStrongPwd", function(value, element){ va ...

  4. Windows 安装Kafka

    Windows 7 安装Apache kafka_2.11-0.9.0.1     下载所需文件 Zookeeper: http://www.apache.org/dyn/closer.cgi/zoo ...

  5. sql 计算周围公里语句

    $lng2 = set_post('lng'); //当前位置坐标 $lat2 = set_post('lat'); round((*ATAN2(SQRT(SIN((`gps`.`gps_lat`-$ ...

  6. jquery mobile开发中footer一直在底部的设置方法

    现给出html中Body节点中的代码如下: 实现代码:data-position=”fixed” <div data-role="page" id="pageone ...

  7. 【Windows编程】系列第九篇:剪贴板使用

    上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个 ...

  8. mysql 优化(一)

    SHOW VARIABLES like 'slow_query_log'  #查看慢查询设置  1 set GLOBAL slow_query_log_file ="d:/sql/sql_l ...

  9. 基于网格的分割线优化算法(Level Set)

    本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...

  10. hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别

    网上找到个描述的很精妙的例子 Child   <-   many-to-one   ->Parent         class   Child   {         private   ...