We often face many if-else statements during the development, that's a little boring.
We can use pattern to change this, such as Strategy, and Command patterns.
Here is an example for Command pattern:
We can use pattern to change this, such as Strategy, and Command patterns.
Here is an example for Command pattern:
package com.stefli.test.pattern.ifelse;
public class IfElseTester {
public enum Command {
A {
void exec() {
p("A command executed!");
}
},
B {
void exec() {
p("B command executed!");
}
},
C {
void exec() {
p("C command executed!");
}
};
abstract void exec();
}
public static void p(String line) {
System.out.println(line);
}
public static void main(String[] args) {
if (args.length != 1) {
p("Wrong arguments!please try again!");
}
oldMethod(args);
newMethod(args);
}
public static void oldMethod(String[] args) {
if ("A".equalsIgnoreCase(args[0])) {
p("A executed in old method!");
} else if ("B".equalsIgnoreCase(args[0])) {
p("B executed in old method!");
} else if ("C".equalsIgnoreCase(args[0])) {
p("C executed in old method!");
}
}
public static void newMethod(String[] args) {
Command.valueOf(args[0]).exec();
}
}