zoukankan      html  css  js  c++  java
  • 一道面试题,观察者模式

    <?php
    
    interface Strategy
    {
      public function send_code($code);
    }
    
    class messageStrategy implements Strategy
    {
      public function send_code($code)
      {
        return "短信已发送";
      }
    }
    
    class emailStrategy implements Strategy
    {
      public function send_code($code)
      {
        return "邮件已发送";
      }
    }
    
    class weixinStrategy implements Strategy
    {
      public function send_code($code)
      {
        return "微信已发送";
      }
    }
    
    
    class sendCode
    {
      private $strategyInstance;
      public function __construct ($instance)
      {
        $this->strategyInstance = $instance;
      }
     
      public function send($code)
      {
        return $this->strategyInstance->send_code($code);
      }
    }
    
    
    $type = $_GET('type');
    
    if($type=='weixin'){
        $instance = new weixinStrategy();
    }elseif($type=='message'){
        $instance = new messageStrategy();
    }elseif ($type=='email') {
        $instance = new emailStrategy();
    }
    
    
    
    $class = new sendCode($instance);
    $code =  rand(10000,99999);
    $class->send($code);
    
    
    ?>
    
    
    
    
    1 使用场景说明
    用户注册/登录/忘记密码三种情况下,需要发送验证码
    
    2 接口说明
       后台系统实现推送验证码功能,支持短信/邮件/微信模版消息。
    
    3  请求参数
    type:发送的类型 weixin 或 message 或 email
  • 相关阅读:
    77. Combinations
    76. Minimum Window Substring
    75. Sort Colors
    74. Search a 2D Matrix
    73. Set Matrix Zeroes
    72. Edit Distance
    71. Simplify Path
    70. Climbing Stairs
    线段树+欧拉函数——cf1114F
    区间dp——好题cf1132F
  • 原文地址:https://www.cnblogs.com/polax/p/11770351.html
Copyright © 2011-2022 走看看