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);


  • 相关阅读:
    git 相关
    3D渲染相关基本概念
    c#调用GDAL判断图片文件是否损坏
    8.26 轩然大波
    宽容与未来
    vue学习:打开/刷新一个页面时,触发一个后端请求
    linux histroy显示时间
    从数的角度理解视角转换
    对非法网站的一次提权
    简单的BC站点getshell
  • 原文地址:https://www.cnblogs.com/meibao/p/5146865.html
Copyright © 2011-2022 走看看