gpt4 book ai didi

java - 如何在命令模式中实现状态

转载 作者:行者123 更新时间:2023-12-01 14:07:45 24 4
gpt4 key购买 nike

我正在将 Java servlet 前端 Controller 从大型 if-else if block 移植到命令模式,并创建了一个带有执行方法的命令接口(interface)。目前,我正在 servlet 的 init() 方法中实例化每个命令的实例,并将它们存储在 HashMap 中。我想知道如何在给定请求的上下文中运行必要的 command.execute()

我是否向接口(interface)添加 setContext(HttpServletRequest request, HttpServletResponse response); 方法并从我的 doGet 调用 command.setContext(request, response) ()/doPost() 方法之前执行,或者我不应该在 init() 中实例化命令?相反,有一个将 requestresponse 作为参数的构造函数?

显然,该命令的目的是为给定用户/ session 设置各种属性并确定要转发到的正确 JSP,如果没有上下文,它就无法真正做到这一点。

最佳答案

您应该使用:

command.execute(HttpServletRequest request, HttpServletResponse response);

所有状态都可以(并且应该)记录在请求中。通过存储属性很容易做到这一点。

有时您可能需要使用:

command.execute(this, HttpServletRequest request, HttpServletResponse response);

但可能仅当您的命令是枚举而不是真实对象时。

关于java - 如何在命令模式中实现状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762350/

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