一道面试题,观察者模式
Posted polax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道面试题,观察者模式相关的知识,希望对你有一定的参考价值。
<?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
以上是关于一道面试题,观察者模式的主要内容,如果未能解决你的问题,请参考以下文章
每天一道面试题Redis单例模式主从模式sentinel模式和集群模式优缺点?