我正在构建一个laravel 5应用程序,我有一个如下所示的存储库:
use App\Unit
class UnitRepository implements IUnitRepository
{
public function get_all_units()
{
return Unit::all();
}
// More methods below
}
在存储库中的大约6个方法中,我正在做类似的事情 单位::的someMethod。现在我想知道我是否应该使用构造函数 像这样注射
class UnitRepository implements IUnitRepository
{
public function __construct(Unit $unit){
$this->unit = $unit
}
public function get_all_units()
{
return $this->unit->all();
}
// More methods below
}
那么在我的情况下使用构造函数注入会有什么好处。他们是一些吗? 考虑到我在大约6种方法中使用外观,这种性能的改进是什么?
感谢帮助
答案 0 :(得分:1)
这不仅仅是表现问题(顺便说一下:这两个案例的表现差异可以忽略不计)。
由于您的Unit
模型几乎可以在存储库的任何方法中访问,因此使用构造函数注入是一种明确的方式来显示存储库与Unit
类的直接相关性
此外,如果您在构造函数中注入依赖项,并且将来您将更改Unit
类,您所要做的就是更改构造函数的参数。相反,使用外墙,您必须在所有方法中更改所有外墙调用