【问题标题】:Is Spring MVC considered a facade design pattern?Spring MVC 是否被视为外观设计模式?
【发布时间】:2013-04-30 19:20:12
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: design-patterns spring-mvc facade


    【解决方案1】:

    这不是外观模式。

    hereherehere 考虑外观模式的意图

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

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

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

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

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

    【讨论】:

    • In Spring MVC, you cannot use the subsystems to serve the HTTP request. The Controller class is not dispensable.。完美的点!
    猜你喜欢
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    相关资源
    最近更新 更多