据我所知,Facade Pattern的意图是
提供一个统一的接口到组接口在一个子系统.Facade定义了一个更高级别的接口,使子系统更易于使用.这可以用于将许多复杂的对象交互简化为单个界面.
根据我的理解,模式的目标是隐藏子系统中的复杂性(例如,您的外观类调用子系统中的许多对象).
但是在Laravel的Facade中,它只有一个类调用另一个类(不是子系统).对我来说,它看起来更像是一个Proxy
超过Facade
.有人可以帮我澄清这一点.
小智 2
《PHP 设计模式架构师指南》一书指出,
Facade 的目的是为由许多对象组成的整个子系统提供一个更简单的接口。
据我了解,设计模式不是“先验”义务,而是对常见问题实施通用可重用解决方案的承诺。
Laravel 4 利用了 Facade 设计模式,它允许它通过静态 API 提供富有表现力的语法,但仍然保持其可测试性。外观隐藏了代码的复杂性/实现。事实上,Laravel 的Facades实现了单个对象。我们不应该忽视 Laravel 的 App Facade(一个 IoC 容器)封装了整个应用程序。
代理模式拦截请求并执行额外的工作,例如:过滤、ACL、转换……“消费者”对象完全不知道代理层提供的额外工作。
归档时间: |
|
查看次数: |
572 次 |
最近记录: |