我正在尝试设计一个应用程序,在这个应用程序中我将拥有一个IAction对象的地图。每个IAction对象都有一个方法IAction IAction.processAction(),它在其中执行其中包含的知识。这可以查询数据库,调用web服务,等等。在执行完每个IAction之后,控制就会被发送到下一个IAction实例。
当应用程序启动时,它将包含一个Map地图,该地图的执行顺序是正确的。Map的Integer类型的关键是执行的顺序。IAction.processAction()可以将控制跳转到地图中的最后一个IAction,或者一起停止它。
我可以在我的头脑中可视化代码,我已经写了几行代码来帮助我做到这一点。我正在寻找一种设计模式,可以很容易地帮助这种类型的处理。我不确定Command模式是否适合这个角色。
我希望有人能告诉我,他们认为哪些模式适合或不适合。
发布于 2009-10-19 14:45:22
听起来命令模式在这里确实有一定的相关性。
然而,我认为你做错了。设计模式本质上是一个例子和食谱,在设计产品如何工作时引导你的思想沿着生产路线前进。你所做的,采用一个好的设计,然后试图将它硬塞进一个“官方”设计模式,这都是倒退的。
除此之外,您的IAction对象映射中的关键字是什么?听起来(可能是链接的)列表对他们来说是一种更自然的结构。
发布于 2009-10-19 14:44:39
这听起来像是Chain of Responsibility pattern的一个变体。
发布于 2009-10-19 14:42:58
您的命令明显遵循 IAction 模式。
您要执行的操作列表可以是复合模式。
https://stackoverflow.com/questions/1589044
复制相似问题