zoukankan      html  css  js  c++  java
  • 适配器模式例子

    <?php

    class Message{
      private $message;
      function __construct($m){
        $ip = $_SERVER('REMDTE_ADDR');
        $this->message = $ip.':'.$m;
      }
      function getMessage(){
        return $this->message;
      }
    }

    //适配器类,不改变原有类的情况下.增加新的借口
    class MessageAdapter extends Message{
      private $ip;
      private $text;
      function __construct(){
        //适配器往往需要调用父类的某些方法
        parent::__construct($m){
          $message = $this->getMessage();
          $arr = explode(":", $message);
          $this->ip = $arr[0];
          $this->text = $arr[1];
        }
      }
      function getip(){
        return $this->ip;
      }
      function getText(){
        return $this->text;
      }
    }

    class LogFile{
      public static function write($messageObj){
        $message->$messageObj->getMessage();
        $h = fopen('./log.log', 'a');
        fwrite($h, $message." ");
        fclose($h);
      }
    }

    class LogCSV{
      public static function write($messageObj){
        $ip = $messageObj->getIp();
        $text = $messageObj->getText();
        $message = $ip.','.$text;
        $h = fopen('./log.csv', 'a');
        fwrite($h, $message." ");
        fclose($h);
      }
    }

    $m = new MessageAdapter('this is a log!!');
    LogFile::write($m);


  • 相关阅读:
    全排列和几道例题
    NOJ1333: [蓝桥杯2017初赛]Excel地址
    力扣5-最长回文子串-(Manacher算法)
    CF1003E-Tree Constructing-(构造+dfs)
    NOJ1329:[蓝桥杯2017初赛]k倍区间-(前缀和)
    Java 时间
    小魂和他的数列-(离散+二分+树状数组)
    AC自动机入门和几道例题
    java写入加速
    清理 Excel 导出的 HTML 的多余属性
  • 原文地址:https://www.cnblogs.com/meibao/p/5146865.html
Copyright © 2011-2022 走看看