3

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

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

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

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

我们的架构师认为,这不是“立面模式”。他是对的吗?

4

1 回答 1

3

它不是外观模式。

从这里这里这里考虑外观模式的意图

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

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

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

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

在 Spring MVC 中,您不能使用子系统来服务 HTTP 请求。Controller 类不是可有可无的。

于 2013-04-30T19:50:54.353 回答