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

比如如下场景 , 中文名只是为了更直观的说明我想问的问题.

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 这样的方式感觉不是很优雅. */
/* 反射? 魔术方法? */
/* 谢谢大家 */
}
DIEA
浏览 349回答 3
3回答

手掌心

class upload($stroage = 'ftp',$path) { $stroageClass = new $stroage; $stroageClass->save($path); }

胡说叔叔

可以使用 抽象工厂
打开App,查看更多内容
随时随地看视频慕课网APP