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


  • 相关阅读:
    洛谷-P1591 阶乘数码
    洛谷-P1328 生活大爆炸版石头剪刀布
    git的使用
    docker下载命令
    springboot学习笔记
    内部类被实例化才会被加载进内存测试
    springboot环境搭建遇到的问题
    Java多线程的锁机制
    spring JdbcTemplate学习
    多线程循环注意
  • 原文地址:https://www.cnblogs.com/meibao/p/5146865.html
Copyright © 2011-2022 走看看