Spring MVC被认为是门面设计模式吗?

时间:2013-04-30 19:20:13

标签: design-patterns spring-mvc facade

假设我有一个Spring MVC,Hibernate Web应用程序,就像这样分层。

 Controller class -> Service class -> DAO -> Hibernate -> Actual Database

 Ex:
   getCustomers() -> CustomerService.listCustomers() ->  DAO.customers() -> Hibernate/SQL

因此,Web层/ Controller获取所请求的数据。它不知道实现。在内部,它调用多个类/方法来获取数据。

我们的建筑师认为,这不是'门面模式'。他是对的吗?

1 个答案:

答案 0 :(得分:3)

这不是Facade模式。

hereherehere

考虑外观模式的意图
  

“为子系统中的一组接口提供统一的接口。”

     

“使用更简单的界面包装复杂的子系统。”

因此,目的是包装许多子系统并提供简化/统一的API。这根本不是Spring MVC控制器的目的。

大多数情况下,在Facade中,如果您愿意,可以自己使用子系统,只是它不太干净。所以Facade课程是可有可无的。

在Spring MVC中,您无法使用子系统来提供HTTP请求。 Controller类不是必要的。