getAllClazz() { return err_desc; }public static String getDescByCode(int code) { return err_desc.get(code); }
public String getCode() { return code; }
public void setCode(String code) { this.code = code; }
public String getDesc() { return desc; }
public void setDesc(String desc) { this.desc = desc; }
public String getClazz() { return clazz; }
public void setClazz(String clazz) { this.clazz = clazz; }}
2.定义策略上下⽂,根据command获取对象实例代码如下:
public class InnerCommandContext { @Autowired
static ApplicationContext applicationContext;
public static InnerCommand getInstance(String command) { //getAllClazz
Map allClazz = SystemErrorCode.getAllClazz(); String[] trim = command.trim().split(\" \"); String clazz = allClazz.get(trim[0]); InnerCommand innerCommand = null; try {if (StringUtils.isEmpty(clazz)) { clazz = null; }
innerCommand = (InnerCommand) Class.forName(clazz).newInstance(); } catch (Exception e) { e.printStackTrace(); }
return innerCommand; }}
3.定义接⼝代码如下:
public interface InnerCommand { void process(String msg);}
4.定义实现类(这⾥只加了⼀个实现类,可根据⾃⼰业务实现)代码如下:
public class PrintAdminCommand implements InnerCommand { @Override
public void process(String msg) { System.out.println(\"aaaaaaaa\"); }}
5.调⽤
代码如下:
public static void main(String[] args) {
InnerCommand instance = InnerCommandContext.getInstance(\":admin\"); instance.process(\":admin\");}