2013-04-30 85 views
2

可以说我有一个Spring MVC,Hibernate Web应用程序就像这样分层。Spring MVC是否考虑了门面设计模式?

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

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

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

我们的建筑师认为,这不是'立面图案'。他对吗?

回答

2

这不是一个门面模式。

考虑Facade模式的意图从hereherehere

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

“用更简单的接口包装复杂的子系统。”

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

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

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

+0

'在Spring MVC中,您不能使用子系统来服务HTTP请求。 Controller类不是可有可无的。完美点! – 2013-04-30 19:54:21