2013-04-30 60 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