想象
给定一个project业务对象和类似(简化的)规则:
stages of evaluation;reward value/algorithm;可能太天真了)
我想到的第一个想法是使用decorator pattern;由于它的结构,它看起来有点适用。但是,如果您需要持久化项目的当前“修饰”state提供的其他详细信息,该怎么办?
我需要在每个阶段都有额外的行为
我遇到了一篇关于jBPM的文章。我相信它和WF有很多共同点。它当然拥有最需要的东西,同时它拥有(过度消耗)庞大的基础设施。
但是,它在设计时能不包含这么多的复杂性吗?
你有什么建议?
发布于 2014-02-19 07:31:08
当我看到跨越时间的“过程”时,我通常会想到“状态机”。但是,您的需求之一表示该过程是线性的,因此状态机可能会过度使用。
听起来很明显,您有一个通用的界面来描述Stage,它的功能包括奖励(),以及一个“有一个”阶段的顶级项目。
我假设项目运行时间较长,因此您需要能够在项目事件之间保存项目状态。所以项目必须是可持续的,包括它所处的阶段。
一开始,我就看到了一个Project类、Stage接口和Stage的具体实现。然后可能是一个StageId枚举,以便于保持这些阶段。
(了解我,我可能也会在映射中定义转换,并实现一个非常非常简单的状态机。但是,您所拥有的简单的线性状态机只需使用if...thens来保持它的轻便性。)
https://softwareengineering.stackexchange.com/questions/229492
复制相似问题