【问题标题】:What is the difference between a Controller and a Facade?控制器和外观有什么区别?
【发布时间】:2012-05-07 19:34:01
【问题描述】:
在我的应用程序中,我曾经在主应用程序中使用它们作为控制器来调用 Facade 方法,因为我认为它们是同一个东西,但现在我认为我错了。
我的应用程序使用多个外观,每个外观用于一种任务。如果我改用Controller,正确的做法是只有一个Controller?
我的问题是外观和控制器之间有什么区别。
【问题讨论】:
标签:
model-view-controller
design-patterns
language-agnostic
controller
facade
【解决方案1】:
通常情况会相反,因为您的系统中的外观往往比控制器少。 Facades 旨在包装复杂的功能,它们的主要目标是隐藏底层系统的复杂性。您可以将 Facade 视为包装复杂功能并提供更简单的交互方法的层。
另一方面,控制器通常与系统中非常特定的功能相关联。它的主要目标是调解视图和模型之间的交互,或者在某些情况下只是一个模型。
更典型的情况是外观与多个控制器交互,反之亦然。