2016-09-27 124 views
0

我想從社交網絡應用程序建模一個Post對象,並避免狀態的組合爆炸。例如,我可以有一個超類型published這將有commented,liked,liked, reported等等的子狀態。問題是發佈的帖子可能是commented and liked,commented and liked and reported等,我不想創建這些人造組合狀態。嵌套它們也不是一個好的解決方案,因爲這些子狀態之間沒有順序或層次結構,最終會導致組合增長問題。正交區域似乎也不是解決方案。任何線索?發佈對象狀態機

+1

爲什麼正交區域似乎不是一個解決方案?是的,他們做到了!提供更詳細的描述可能的狀態以及它們是如何相互關聯的。 – Ister

+1

@Ister是的,你是對的。它更像是我的一個正交區域的寵物:「如果你使用正交區域捕捉自己,拍拍自己」;-)或者,更有禮貌地說 - 就像Jim L.下面所建議的 - 也許你最好重新考慮你的問題。 – user160902

回答

0

除非需要限制可能發生的事件或事件的不同行爲,否則根本不需要這些狀態。對帖子發表評論或「喜歡」是否真的改變了你對該帖子所做的任何事情?

通常情況下,在複雜性中爆炸的正交狀態表明您需要更準確地反映問題域中的事情,並且每個類都需要它自己的獨立狀態機。

您可能需要的是用於評論(例如,添加,編輯,刪除)的狀態機,「喜歡」的狀態機(例如添加,收回,恢復)等等。