gpt4 book ai didi

java - 在 MVC 中映射操作时要实现的最佳设计模式

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:06 29 4
gpt4 key购买 nike

编写以下案例的最佳实践是什么:

我们有一个 Controller ,它根据用户采取的路径采取不同的操作。例如:

如果用户选择路径/path1/hello,它会说“hello”。如果用户选择/path1/bye?name="Philipp"它将调用 sayGoodBye() 等。

我在 Controller 内编写了一个 switch 语句,这很简单,但在我看来效率不高。考虑到路径通常是字符串,实现此目的的最佳方法是什么。

private void takeAction()
{
switch (path[1])
{
case "hello":
//sayHello();
break;
case "bye":
//sayBye();
break;
case "case3":
//Blah();
break;
...
}
}

更新:在我的上下文中,路径是动态生成的,这意味着那里没有特定的页面。如果路径是/Amir/,那么Amir将被动态生成。因此,正如 Mark Leighton Fisher 解释的那样,将它们放入哈希中相当困难。

最佳答案

您的 Controller 承担了额外的责任:URL 路由

相反,这应该在执行 Controller 的方法之前执行。与您的 Controller 无关。您可以看到的最明显的模式可能是 front controller .

至于具体实现,最简单的方法是创建一个 Router 实例,该实例根据用户的输入(URL 本身和其他参数,例如 POST 值)生成一个 Request 对象。您可以从此 Request 对象中提取 Controller 的名称和方法。

此外,提供所述 Request 实例作为 action 的参数是合理的,以便该操作可以清楚地访问用户输入中的其他值。

您可能还会发现这很有用:Spring Framework docs for DispatcherServlet

关于java - 在 MVC 中映射操作时要实现的最佳设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893220/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com