我知道 Laravel 使用门面。但基本上我无法理解他们为什么使用它。让我们来看看也许是 File 门面类。当他们已经有了 FileSystem 类时,为什么他们将 File 类作为外观?我们不能在我们的代码中写这样的东西吗?
$file = new \Illuminate\FileSystem();
$path = $file->get(public_path("test.txt"));
Run Code Online (Sandbox Code Playgroud)
但是 laravel 决定使用 File 门面类,之后我可以写这样的东西:
$path = File::get(public_path("test.txt"));
Run Code Online (Sandbox Code Playgroud)
美在何处?如果您查看外观模式,它会为您提供更轻松的界面来完成大型工作,并且当您可以使用 2 行外观来完成时,它不会使用 10 行代码,但是 Laravel 的外观使其难以理解。
可能是因为他们制作了门面类,使其像单例一样工作,这是它令人惊奇的一面吗?但是为什么单身如此惊人?
我不明白 laravel 的外观是什么想法。