Java设计模式

Java设计模式,java,design-patterns,command-pattern,Java,Design Patterns,Command Pattern,我正在尝试设计一个应用程序,其中我将有一个IAction对象的映射。每个IAction对象都有一个方法IAction IAction.processAction(),它在其中执行包含在其中的知识。这可能会在执行每个IAction控件后,查询调用web服务的数据库等,然后将其发送到下一个IAction实例 当应用程序启动时,它将包含一个Map的映射,该映射将按照正确的执行顺序进行。Map的Integer类型的键是执行的顺序IAction.processAction()可以将控件跳转到映射中的最后一

我正在尝试设计一个应用程序,其中我将有一个
IAction
对象的映射。每个
IAction
对象都有一个方法
IAction IAction.processAction()
,它在其中执行包含在其中的知识。这可能会在执行每个
IAction
控件后,查询调用web服务的数据库等,然后将其发送到下一个
IAction
实例

当应用程序启动时,它将包含一个
Map
的映射,该映射将按照正确的执行顺序进行。
Map
Integer
类型的键是执行的顺序
IAction.processAction()
可以将控件跳转到映射中的最后一个
IAction
,或将其全部停止

我可以在脑海中想象代码,我已经写了几行代码来帮助我实现这一点。我正在寻找一种设计模式,可以很容易地帮助这种类型的处理。我不确定命令模式是否适合这个角色


我希望有人能告诉我,他们认为哪些图案符合要求。

你的动作显然遵循命令


您要执行的操作列表可能是一个组合模式。

这听起来像是命令模式的一个变体。

听起来命令模式在这里确实有一定的相关性

然而,我认为你走错了方向。设计模式本质上是在设计产品如何工作时引导您的思想沿着生产线的示例和配方。你所做的,拿一个好的设计,然后试图把它塞进一个“官方”的设计模式,都是倒退


除此之外,你的
IAction
对象地图中的关键点是什么?听起来(可能是链接的)列表对他们来说是更自然的结构。

发布您的代码将帮助我们提供好的解决方案。如果没有代码,您将只获得指导原则

还有一件事:设计模式只是指导方针。在实现解决方案时,您不应该将解决方案放在特定的设计模式中。提出问题的解决方案后,您可以决定您的解决方案是否符合特定模式。如果没有,您仍然可以在没有任何设计模式的情况下实现您的解决方案

似乎是执行简单命令的解决方案
。如果您的命令彼此独立,那么简单的命令模式可以解决您的问题。如果某些命令依赖于其他命令,则必须通过建立层次结构来使用


模式可用于将所有命令存储在地图对象中

你怎么从来没有接受过你问题的答案?你只收到了不好的答案吗?a)java在接口方面并没有真正使用“I”这个词b)家庭作业问题?c) 要小心尝试适合你的问题的模式;你可能会以反模式而告终,我还没有对它进行测试,但是对于可能从任何一点上一直到列表末尾的东西来说,LinkedList不是一个坏的选择吗?(“
IAction.processAction()
可以将控制权跳到最后一个
IAction
”)@R.Bemrose:在这种情况下,是的,绝对可以。我的理解是,这些操作是按顺序尝试的:“在执行每个
iaaction
之后,控制权会被发送到下一个
iaaction
实例。”不过,实际的数据结构确实取决于事物如何组合在一起,这就是为什么这是一个值得考虑的建议,而不是一个建议。你尝试设计一个设计模式可能是对的。根据数据库中的定义,当消息传入时,我有一个IAction的映射。表中还定义了要处理的第一个IAction。以下所有操作的顺序可能在运行时发生更改。我正试图定义对这些接口起作用的最佳接口和控制器。谢谢你的帮助。