2016-09-27 91 views
0

我想从社交网络应用程序建模一个Post对象,并避免状态的组合爆炸。例如,我可以有一个超类型published这将有commented,liked,liked, reported等等的子状态。问题是发布的帖子可能是commented and liked,commented and liked and reported等,我不想创建这些人造组合状态。嵌套它们也不是一个好的解决方案,因为这些子状态之间没有顺序或层次结构,最终会导致组合增长问题。正交区域似乎也不是解决方案。任何线索?发布对象状态机

+1

为什么正交区域似乎不是一个解决方案?是的,他们做到了!提供更详细的描述可能的状态以及它们是如何相互关联的。 – Ister

+1

@Ister是的,你是对的。它更像是我的一个正交区域的宠物:“如果你使用正交区域捕捉自己,拍拍自己”;-)或者,更有礼貌地说 - 就像Jim L.下面所建议的 - 也许你最好重新考虑你的问题。 – user160902

回答

0

除非需要限制可能发生的事件或事件的不同行为,否则根本不需要这些状态。对帖子发表评论或“喜欢”是否真的改变了你对该帖子所做的任何事情?

通常情况下,在复杂性中爆炸的正交状态表明您需要更准确地反映问题域中的事情,并且每个类都需要它自己的独立状态机。

您可能需要的是用于评论(例如,添加,编辑,删除)的状态机,“喜欢”的状态机(例如添加,收回,恢复)等等。