大家看看用什么模式来简化

03-03-13 mem_fox

这个是流程控制的结点设计,分成模版和实例2部分,现在是ProcessItem和ActivityItem的类型都有很多,按照Refactory的要求,应该用State模式代替,但是那有小的类就太多了,大家给出出注意,怎么搞的结构清晰一点

banq
2003-03-14 17:44

对使用State模式

这几天,我刚刚用state模式refactor过一个系统,原来设置状态都是直接使用int state = 1 这样简单的赋值概念,如果你是一个流程控制系统,状态图在系统中就占据相当重要的位置,那么你就要设置一个个小对象state,既然状态这么重要,不应该把他们醒目的标识成一个类吗?

当然需要。

你通过一个GameStateManager或GameStateFacade类来统一对外提供状态的设置 以及查询 API.

还要注意:设计StateMachine时,可能你需要一定的Action,必须分析你的系统,每个Action必然有一个状态,这是遵循能量守恒定律的,:)。

Action可能就是从用户界面传来的Command。这点可以看看PetStore中的StateMachine就是根据Action做了一个在WEB层和EJB层的接口。