我读过一个类不应该有太多的依赖关系。在一本书中,它指出 4 个依赖项可能表明类可能做得太多。
假设我编写了一个使用 10 个依赖项的类:6 个类和 4 个外观。我应该只关心这 6 个类并将它们拆分,还是也应该关心 4 个外观?
如果有人想知道我是如何得到这么多外墙的:
use Input;
use App;
use Session;
use Log;
这些都是经常需要的。我听说过一个问题 - 为什么我需要应用程序?调用函数:
App::setLocale('lt');
有人说门面不是依赖项,也在这里:
关于这个问题有很多不同的观点(类什么时候依赖某些东西),但是类依赖通常被视为传递给构造函数的内容,即类被实例化为对象所需的内容。
我想我可以自己从一个类创建一个外观,我会以这种方式减少依赖关系。但这有意义吗?
例如这篇文章指出——我们不应该使用门面:
http://taylorotwell.com/response-dont-use-facades/
从它我明白门面不会那么糟糕,但不好的是班级开始做太多事情。
我说的是 Laravel 4,但可能同样适用于 Laravel 5 或其他使用相同的框架。我刚刚听说 Laravel 5 使用的门面没有 Laravel 4 那么多。
更新:
我也想得到这样的论据,以便在讨论这个话题时可以与其他人一起使用。就像我说的那样-互联网上的某个人(即使具有良好的stackoverflow配置文件)对我说外观很糟糕,它们就像全局变量,它们会立即告诉您-这与全局不同,它们是可模拟的,您不应该关心。他们也可能会说,这是那些家伙的意见。所以我想要一个强项来保护自己。所以我可以把它解释为 2*2 = 4 并且没有人会不同意。或者至少接近那个。
更新:
如果这些是依赖项,并且我希望一个类最多有 4 个依赖项,我只有一个想法——创建分组类,就像类树一样。但我最终得到了许多用于小功能的类。就像这 10 个依赖项一样,如果我想拥有最多 4 个依赖项,我想我需要 3-5 个类而不是 1 个。所以如果我有大项目,你将拥有数百万个小类。那它看起来不会更复杂吗?就像我看到的 Laravel 有很多类,而 CodeIgniter 的类少得多,并且看起来更易于阅读/遵循、扩展。