2012-09-17 60 views
1

我有幾個操作員在模擬設置。 操作員具有位置,目標位置,任務和一些狀態信息(例如能量水平)。 模擬應執行模擬步驟並設置操作員的目標位置。 在每個模擬步驟中,操作員應該朝目標位置移動,更新他的狀態信息並可能改變他的任務。將模擬業務邏輯放在哪裏?

現在我不知道把這些更新邏輯放在哪裏。 我應該使用一個服務類來操縱操作員的狀態,或者在操作員類中使用makeSimulationStep()方法嗎?一方面,第一種方法在某種程度上是貧血的領域模型,但另一方面,第二種方法似乎是因爲它將模擬相關的任務放在操作員類中。

回答

0

這看起來更像遊戲邏輯,但我會用Operator類提供有關操作員製作模擬步驟的信息,並將這些信息組合到Animation類中。

事情是這樣的:

while (inAnimationLoop) {  
    for (Operator operator : operators) { 
     operator.updateSimulation(); 
     operator.drawPosition(); 
    } 
} 
+0

是的,遊戲邏輯可能是一個更合適的術語。該工具將用於監控任務的受控實驗。但是,我認爲'drawPosition()'方法違反了模型和GUI之間的分離。我將使用觀察者模式。 – kobo

相關問題