我们正在开发一个系统来跟踪我们外地办事处的库存情况。
在其核心,该系统将有一个“资产”的清单-如自行车,电脑,帐篷。每个资产都会经历“活动”、“丢失”、“已检出”、“已清点”等状态。有些州有额外的信息,比如“检出到”或“清点人”。
因此,我认为每个State都是父类的子类,或者可能实现一个iState接口。这部分我很清楚。
我坚持的是一个好的OOP设计,它将哪些状态可以遵循前一个状态的业务逻辑放在一起( Asset对象将存储它的“最后”状态)。例如,Checked In只能跟随Checked Out。活动必须是资产上记录的第一个状态。
任何想法或指针都会很有帮助。在这一点上,没有一种GoF设计模式能让我大吃一惊。
是的,我知道我们应该关注COTS,但管理层已经决定现在开始滚动我们自己的工具。
发布于 2009-01-28 19:07:42
你已经回答了你自己的问题。查看State模式。
发布于 2009-01-28 19:07:31
嗯。这听起来更像是一个工作流/业务规则问题,而不是OOD。我不知道有什么OO原则会像你描述的那样强制执行状态的顺序/依赖关系。
https://stackoverflow.com/questions/488840
复制相似问题