ujw*_*kal 14 oop interface laravel-5.1
我4个月以来一直在做laravel.我没有发现外观和合同之间的明显区别,因为它们都是接口集.为什么我会使用外墙而不是合同或合同而不是外墙?
问题是使用Facade还是Contract归结为您想如何解析您的类以及您是否想使用接口。
正面
外观是一个类而不是接口(这里是一个示例外观)。
Facade仅用于从服务容器中加载类更方便
将要加载getFacadeAccessor()的类在外观类的方法中被阻止。
例子:
// Without facade - resolving from service container
app('some_service')->methodName();
// Do the same through facade:
someService::methodName();
Run Code Online (Sandbox Code Playgroud)
合同
示例:假设该类some_service实现了接口Illuminate\Contracts\Config\Repository:
// resolving class directly from service container
app('some_service')->methodName();
// resolve through binding from contract
app('Illuminate\Contracts\Config\Repository')->methodName();
Run Code Online (Sandbox Code Playgroud)