为了账号安全,请及时绑定邮箱和手机立即绑定

请问interface实现后的具体应用应该怎么做?

请问interface实现后的具体应用应该怎么做?

PHP
DIEA 2019-03-06 16:19:11
比如如下场景 , 中文名只是为了更直观的说明我想问的问题. interface sotrage { public function save($m); } 根据接口实现了2个类.如下 class ftp implements sotrage { public function save($path) { } } class webdav implements sotrage { public function save($path) { } } 用户实际操作的时候, 用户界面中有选项, 给用户自主选择权. ftp/webdav 比如某个controller class upload($stroage='ftp',$path){ /* 请问*/ /* 这里如何优雅的根据不同$storage,调用不同的类呢? */ /* 例子比较简单,只有2个实现接口的类, 但是不希望使用if/else/switch 这样的方式感觉不是很优雅. */ /* 反射? 魔术方法? */ /* 谢谢大家 */ }
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

class upload($stroage = 'ftp',$path)
{
    $stroageClass = new $stroage;
    $stroageClass->save($path);
}
查看完整回答
反对 回复 2019-03-18
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

可以使用 抽象工厂

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 348 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信