Controller和Facade有什么区别?

时间:2012-04-27 02:39:28

标签: model-view-controller design-patterns language-agnostic controller facade

在我的应用程序中,我曾经使用它们作为控制器在主应用程序中调用Facade方法,因为我认为它们是相同的,但现在我认为我错了。

我的应用程序使用多个Facade,每个Facade用于一种任务。如果我改为使用Controller,那么正确的方法只有一个Controller?

我的问题是Facade和Controller之间有什么区别。

1 个答案:

答案 0 :(得分:10)

通常情况会是相反的,因为你的系统中的外观往往比控制器少。 Facade旨在围绕复杂功能包装,其主要目标是隐藏底层系统的复杂性。您可以将Facade视为包含复杂功能的层,并提供更简单的交互方法。

另一方面,控制器通常与系统中非常特定的功能相关联。它的主要目标是调解视图和模型之间的交互,或者在某些情况下只是模型。

更常见的是,门面与多个控制器交互,反之亦然。