中介模式VS门面模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中介模式VS门面模式相关的知识,希望对你有一定的参考价值。

我正在修改php系统的任务,但是有太多的类通信,所以我搜索了一个模式来解决这个问题,我发现Mediator模式旨在解决复杂的对象通信,Facade可能会帮助减少冗余代码和调用,我应该考虑哪一个?

谢谢,

答案

根据您的描述,我了解您(大多数)关注的是组件之间的通信。在这种情况下,你是对的,你应该采用Mediator模式。

Mediator模式是行为模式,允许交互组件的松散耦合,同时封装交互和通信逻辑。换句话说,您的交互组件(类)在交互之间的负担较小,而中介对象将协调它们的交互方式。它还为您提供了放置通信/交互逻辑的单点。非常适合复杂但定义明确的沟通“规则”。

Facade模式是结构模式,用于包装现有功能,以便为访问此功能提供更简单的界面。如果您将一组类包装在Facade后面并且其他人可以使用简化的界面,那么它也会很有用。

但如果您发现自己需要为不同的分组创建许多外观以及它们之间的呼叫组合,Mediator是最佳选择。

以上是关于中介模式VS门面模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式总结

PHP 门面设计模式在laravel中的应用

门面模式(Facade Pattern)

门面模式

javaEE设计模式——门面模式

设计模式之门面模式与装饰器模式详解和应用