gpt4 book ai didi

laravel - Laravel 中的 Facade 是否实现了 Facade 或 Proxy 模式?

转载 作者:行者123 更新时间:2023-12-04 01:50:52 26 4
gpt4 key购买 nike

据我了解,立面图案的意图是

to provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. This can be used to simplify a number of complicated object interactions into a single interface.



enter image description here

据我了解,该模式的目标是隐藏子系统中的复杂性(例如,您的外观类在子系统中调用 许多对象 )。

但是在 Laravel 的 Facade 中它只有 一级调用另一个 类(class) (不是子系统)。对我来说,它看起来更像是 Proxy超过 Facade .有人可以帮助我澄清这一点。

最佳答案

这本书,Architect's Guide to PHP Design Patterns 笔记,

The purpose of the Facade is to present a simpler interface to an entire sub-system composed of many objects.



在我的理解中,设计模式不是“先验”义务,而是对常见问题实现通用可重用解决方案的 promise 。

Laravel 4 利用了 Facade 设计模式,它允许它通过静态 API 提供富有表现力的语法,但仍然保持可测试性。 Facade 隐藏了代码的复杂性/实现。
确实,Laravel 的 Facades实现单个对象。我们不应该忽视 Laravel 的 App Facade(一个 IoC 容器)封装了整个应用程序。

代理模式拦截请求并做额外的工作,例如:过滤、ACL、转换……“消费者”对象幸福地不知道代理层提供的额外工作。

关于laravel - Laravel 中的 Facade 是否实现了 Facade 或 Proxy 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com