model-view-controller - 建议不使用 Controller 基类的 MVC 框架

标签 model-view-controller design-patterns language-agnostic web-applications

伪代码:

class SomeController {
  def myAction() {
    // controler is an property passed via ctor
    controller.redirect(toWhereever)
  }
}

// another variant
class AnotherController {
  def myAction(controller) {
    // controler is an method argument
    controller.redirect(toWhereever)
  }
}

有什么建议吗?

编辑:因为这个问题有点枯燥,您可以尝试通过使用该框架的一些经验来丰富您的答案,以及您认为该方法的哪些方面更好 .

最佳答案

Spring MVCGrails (建立在 spring 之上)支持没有任何继承的依赖注入(inject)。每个 Controller 都是一个不扩展任何内容的类。相反,您可以将其他组件注入(inject)其中(使用依赖注入(inject))。例如:

@Controller
@RequestMapping("/user")
public class UserController {

     @Inject
     private UserService service;

     @RequestMapping("/register")
     public String register(User user) {..}

}

@Controller
@RequestMapping("/orders")
public class OrderController {
     @Inject
     private UserController userController
}

(虽然将 Controller 注入(inject)其他 Controller 不是一种常见的做法,但您可以注入(inject)任何对象)

关于model-view-controller - 建议不使用 Controller 基类的 MVC 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030905/

相关文章:

c# - WebApi 中的微服务设计部分

ios - UITableView 的dataSource 是不是和table information provider delegate 一样是delegate 设计模式?

C++ 服务器应用程序

language-agnostic - 并发编程和并行编程有什么区别?

language-agnostic - 当你有 A 并做 A 和 B 时你做什么的动词

c# - RedirectToAction 不起作用

javascript - 当表单控件选项具有多个参数时,如何填充组合框中的所选项目?

c# - 使用 MVC C# 和 MySql 的服务器端分页

java - Spring JSP 重定向

java - 在基于 GWT 的应用程序中添加访问控制