zoukankan      html  css  js  c++  java
  • 桥接模式

    <?php
    #Bridge(桥接)模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化
    
    
    
    //实现站内、eamil都能发送普通信息和紧急信息 
    //抽象类,定义信息 
    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,"内容是:",$content;
        }
    }
    
    class email{
        public function send($to,$content){
            echo "email给",$to,"内容是:",$content;
        }
    }
    class sms{
        public function send($to,$content){
            echo "sms给",$to,"内容是:",$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("小明","吃饭了");
    
    echo "<br>";
    
    $dangerinfo = new dangerinfo(new sms());
    $dangerinfo->send("小刚","失火了,快回家");
    
    
    
    
    优点
    分离接口及其实现部分, 将Abstraction与Implementor分享有助于降低对实现部分编译时刻的依赖性, 接口与实现分享有助于分层,从而产生更好的结构化系统
    提高可扩充性
    实现细节对客户透明。
    

      

  • 相关阅读:
    闭包 (Closure)
    RSA算法
    HTTPS
    SSH
    HDU1754 I hate it_线段树(入门级别)
    HDU1166 敌兵布阵_线段树
    c++运算符优先级表
    归并排序练习.
    HDU 1969 精度二分
    uva10944 状态压缩bfs or DP
  • 原文地址:https://www.cnblogs.com/sunlong88/p/8691458.html
Copyright © 2011-2022 走看看