策略模式以及优化

使用场景

在一个条件语句中又包含了多个条件语句

具体策略类会过多

把抽象策略和具体策略放在一个枚举类里。

方法 exe() 相当于抽象策略,而A和B就相当于实现了抽象策略的具体策略

这样就只需要一个枚举类就可以解决具体策略类过多的问题

java 复制代码
public enum Strategy {
    A{

        @Override
        public void exe() {
            System.out.println("执行具体策略A");
        }

    },
    B{
        @Override
        public  void exe() {
            System.out.println("执行具体策略B");
        }

    };

    public abstract void exe();

}

彻底消除if else

Map<条件,具体策略>

完整代码

java 复制代码
public enum Strategy {
    A{

        @Override
        public void exe() {
            System.out.println("执行具体策略A");
        }

    },
    B{
        @Override
        public  void exe() {
            System.out.println("执行具体策略B");
        }

    };

    public abstract void exe();

}
java 复制代码
public class Test {
    public static void main(String[] args) {
        Map<String, Strategy> map=new LinkedHashMap<>();
        map.put("A",Strategy.A);
        map.put("B",Strategy.B);

        String str="A";
        map.get(str).exe();
    }

}
相关推荐
j***12153 分钟前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
一个儒雅随和的男子3 分钟前
Web开发身份认证技术解析
前端·github
kesifan4 分钟前
JAVA异常处理的基本概念
java·开发语言
G***E3166 分钟前
前端自动化测试工具:8个主流方案对比
前端·测试工具·自动化
K***65898 分钟前
Tomcat下载,安装,配置终极版(2024)
java·tomcat
x***381610 分钟前
springboot整合最新版minio和minio的安装(完整教程,新人必看)
java·spring boot·后端
通往曙光的路上12 分钟前
陪玩小项目努力
java
w***48112 分钟前
Maven Spring框架依赖包
java·spring·maven
汤姆yu13 分钟前
基于springboot的乡村信息建设管理系统
java·spring boot·后端
Halo_tjn14 分钟前
Java List集合
java·windows·计算机