买域名建网站价格,做网站前端用什么技术好,黑龙江建设教育信息网,wordpress图片清理使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略#xff0c;而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{O…使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{Overridepublic void exe() {System.out.println(执行具体策略A);}},B{Overridepublic void exe() {System.out.println(执行具体策略B);}};public abstract void exe();}彻底消除if else Map条件具体策略 完整代码
public enum Strategy {A{Overridepublic void exe() {System.out.println(执行具体策略A);}},B{Overridepublic void exe() {System.out.println(执行具体策略B);}};public abstract void exe();}public class Test {public static void main(String[] args) {MapString, Strategy mapnew LinkedHashMap();map.put(A,Strategy.A);map.put(B,Strategy.B);String strA;map.get(str).exe();}}