What are the best patterns/designs for stateful API development?
- by Svante
I am about to implement a API for my TCP/IP server written in Java. Right now I have a temporary method that takes a String, executes a command based on the String and returns a String basically like the following.
public void communicate(BufferedReader in, PrintWriter out) {
    while(true) {
        out.println(handleCommand(in.readLine()));
    }
}
private String handleCommand(String command) {
    if (command.equals("command1") {
        // do stuff
        return "Command 1 executed";
    } else if (command.equals("command2") {
        // do some other stuff
        return "Command 2 executed";
    }
}
I really want to do something more extensible, smarter and stateful, so I could handle more complex and stateful commands and without the method/class getting bloated.
How would you start?
Suggestions, ideas, or links for further reading are very welcome.