2016-08-23 55 views

回答

1

Facade是調用Laravel的依賴注入容器中的實例的另一種方法。它們在整個應用程序中都可用。

依賴注入的實例只能在聲明它們的地方纔可用,使您的類更好地排序。

use Dependency; 

class Class 
{ 
    public function foo() 
    { 
     return Dependency::foo(); 
    } 
} 

我個人覺得這個方法混亂,你可以努力去理解其中的依賴實際上來自除非你在代碼中直接搜索。

use Author\Library\Dependency; 

class Class 
{ 
    public function __construct(Dependency $dependency) 
    { 
     $this->dependency = $dependency; 
    } 

    public function foo() 
    { 
     return $this->dependency->foo(); 
    } 
} 

這種做法,而是讓你需要的類中使用的實例的直接信息。

在良好實踐方面,我認爲這只是一個偏好問題,儘管Laravel 4.x基於Facades,但現在在5.x上的數量要少得多。

在性能方面,除了在Composer中自動加載附加X類實例之外,您不應該看到任何差異。