Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel中的Facade实现Facade还是代理模式?_Laravel_Design Patterns_Facade_Proxy Pattern - Fatal编程技术网

Laravel中的Facade实现Facade还是代理模式?

Laravel中的Facade实现Facade还是代理模式?,laravel,design-patterns,facade,proxy-pattern,Laravel,Design Patterns,Facade,Proxy Pattern,据我所知,正面模式的意图是 为子系统中的一组接口提供统一接口。Facade定义了一个更高级别的接口,使子系统更易于使用。这可用于将许多复杂的对象交互简化为单个接口 据我所知,该模式的目标是隐藏子系统中的复杂性(例如,您的facade类调用子系统中的许多对象) 但在拉威尔的外观中,它只有一个类调用另一个类(不是子系统)。在我看来,它更像一个代理而不是门面。有人能帮我澄清一下吗。这本书,PHP设计模式的架构师指南注释 Facade的目的是为由许多对象组成的整个子系统提供一个更简单的接口 据我所知,

据我所知,正面模式的意图是

子系统中的一组接口提供统一接口。Facade定义了一个更高级别的接口,使子系统更易于使用。这可用于将许多复杂的对象交互简化为单个接口

据我所知,该模式的目标是隐藏子系统中的复杂性(例如,您的facade类调用子系统中的许多对象)

但在拉威尔的外观中,它只有一个类调用另一个类(不是子系统)。在我看来,它更像一个
代理
而不是
门面
。有人能帮我澄清一下吗。

这本书,PHP设计模式的架构师指南注释

Facade的目的是为由许多对象组成的整个子系统提供一个更简单的接口

据我所知,设计模式不是一种“先验”义务,而是一种对常见问题实施通用可重用解决方案的承诺

Laravel4利用了Facade设计模式,该模式允许它通过静态API提供表达性语法,但仍保持可测试性。Facade隐藏了代码的复杂性/实现。 事实上,Laravel实现了一个对象。尽管Laravel的AppFacade(一个IoC容器)封装了整个应用程序,但我们不应该忽视这一点

代理模式拦截请求并执行额外的工作,例如:筛选、ACL、转换。。。“消费者”对象幸福地没有意识到代理层提供的额外工作