15
我目前在學習java,想知道如何以OO方式控制狀態。我實施了一個龐應用程序。如果我想要多種狀態,如遊戲和菜單,並且每個狀態都必須執行啓動,停止和運行,我將如何實現這一點以及如何在這些狀態之間切換。如何在java中創建一個簡單的狀態機
我知道我可以簡單地拋出一個大的switch語句,但實現它的最佳方式是什麼?
我希望能夠在遊戲狀態中切換到菜單狀態,反之亦然。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Pong extends Applet implements Runnable, KeyListener{
public void start()
{
setSize(screen);
setFocusable(true);
Thread th = new Thread (this);
th.start();
}
public void stop()
{
}
//Etc..
}
注意:當在特定的枚舉中重寫方法時,它們的類是不一樣的。 (在這種情況下,THREE.getClass()是狀態,而TWO.getClass()可以是狀態$ 2) – Asaf 2011-11-23 10:52:39
這段代碼啓發你的艱難過程,尤其是在java中。謝謝。 – Trying 2013-07-03 14:20:45
@Sean:注意到Asaf的評論,我想知道,如果你會發現任何不利的情況,將構造函數中可能的後續狀態傳遞給不同的狀態而不是覆蓋的方法? (比如'ONE(EnumSet.of(TWO,THREE)),TWO(EnumSet.of(THREE))'...... – 2013-07-17 12:34:53