6

我目前正在使用 Laravel-4 在 php 中构建一个 Web 应用程序,但是,我怀疑这个问题也适用于其他语言和框架。

我已阅读有关依赖注入和 Facades 的内容,并了解每种情况下必要的编码。我不清楚的是什么时候应该使用一个而不是另一个?

使用依赖注入而不是外观设计模式的优点/缺点或仅仅是原因?

非常感谢

4

1 回答 1

2

外观用于使与类的交互更易于阅读和使用。它使代码看起来您​​正在使用一堆静态方法与一个类进行交互,而实际上您正在调用现有对象上的方法。

依赖注入,顾名思义,就是将一个类的依赖注入到该类中。这是通过构造函数完成的。您将类注入另一个类以允许该类使用注入类的功能。当您开始将接口注入到类中时,这会变得很强大。然后你可以基于接口创建一个类并将其注入到类中。这样,如果你需要改变注入类的工作方式,你可以基于接口创建一个新的类并注入它。由于您的代码是基于注入接口的,它将确保接收到注入的类将继续工作而无需更改。

如果您创建一个基于 Eloquent 引擎接口的存储库,这在 Laravel 4 中最为显着。您可以将该存储库注入控制器并使用接口上的方法来获取您需要的信息。然后,如果您想切换到 Redis 之类的东西,您所要做的就是创建一个基于该接口的新类,该接口使用 Redis 引擎,然后注入该类。控制器永远不需要更改。

于 2013-09-18T15:38:27.337 回答