Approch 1:
class Storage extends SaeStorage {
public function save($data,$name){
if (! $this->write ( ST_DOMAIN, $name, $data )){
$error_message = $this->errmsg();
$result['error'] = $error_message;
return $result;
}else{
$url = $this->getUrl ( ST_DOMAIN, $name );
return $url;
}
}
}
方法2:
class Storage {
public static function save($data,$name){
$SaeStorage = new SaeStorage();
if (! $SaeStorage->write ( ST_DOMAIN, $name, $data )){
$error_message = $this->errmsg();
$result['error'] = $error_message;
return $result;
}else{
$url = $SaeStorage->getUrl ( ST_DOMAIN, $name );
return $url;
}
}
}
答案 0 :(得分:2)
我建议使用依赖注入模式。 Here是示例
答案 1 :(得分:0)
如果要在整个Storage类中使用SaeStorage类,那么方法1更有意义。每次要在扩展类中使用方法或属性时,它都可以节省您实例化新对象的时间。
答案 2 :(得分:0)
这真是一个设计问题。这两种方法都很好,取决于您的需求。
如果你想要存储中的所有SaeStorage功能,第一个更好,如果你不需要它,第二个只在save方法中。
无论如何,我建议在这里使用第一个,因为你也可以在使用SaeStorage的地方使用它。
答案 3 :(得分:0)
取决于你的意思更好。由于两种方法之间的性能差异非常小(如果有的话),并且可以忽略,我保持性能不容置疑。
那么这完全是一个设计问题。你需要找到答案的是: