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


  • 相关阅读:
    python中获取今天昨天和明天的日期
    Redis安装系统服务1073错误
    npm 安装删除模块
    git 远程服务器创建项目自动化部署、克隆推送免密码
    A20地址线科普【转载】
    fork 与 vfork
    /bin /usr/bin /sbin /usr/sbin 目录的作用
    Coreutils
    VMware 设置支持UEFI
    npm 发布包
  • 原文地址:https://www.cnblogs.com/meibao/p/5146865.html
Copyright © 2011-2022 走看看