门面设计模式和MVC模式相似吗?

3

我对外观设计模式的使用感到困惑。外观模式是否类似于MVC?我之所以这样问是因为我在一个项目中使用了外观模式,它有助于将前端界面与后端内部分离。

3个回答

5
我认为你可能忽略了很多事情,MVC是一个整体框架,可以帮助你分离关注点,例如控制器(处理web请求的基础架构)、模型(是您传递给Views的信息)和视图(只关心展示信息)。

我对facade的理解可以应用于任何需要提供更简单接口的系统组件,以便在这些组件之间进行通信时避免过于繁琐或复杂的API。

与facade有关的是适配器模式,它的作用就像facade一样,试图简化系统组件的API,但不同之处在于其中一个组件不在您的控制范围内,是您无法修改其行为的内容。ASP.Net缓存可能是一个例子,您需要创建一个适配器来满足您的要求,并且如果ASP.Net缓存发生大幅度改变,您将需要更新您的适配器。

总的来说,两者都是模式,但我认为MVC类似于Framework + Pattern,而Facade只是一个简单的函数,可以使您在使用复杂软件组件时更容易工作。

希望对您有所帮助,


2

简单来说,Facade(外观模式)用于隐藏系统/子系统/层的内部细节,以防止客户端直接访问,而MVC是一种将业务逻辑、展示和控制器分离的架构。


1

外观模式为子系统中一组接口提供了一个统一的接口。

外观定义了一个更高级别的接口,使子系统易于使用。这可以用来简化许多复杂的对象交互成为一个单一的接口。

外观模式可在MVC应用程序中使用,以增强复杂MVC应用程序的分层架构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接