java 策略模式解决if-else ,函数式接口解决编写多个子类的问题

复制代码
/**
 * @author: szc
 * @date: 2023/9/2 22:45
 * @version: 1.0
 * @description: 从map中获取函数式接口,解决if-else 多个子类问题
 */
@Service
public class MapToInterface {

    @Autowired
    private TypeResult typeResult;

    private static Map<String, Function<String, String>> map = new HashMap<>();

    @PostConstruct
    public void init(){
        map.put("类型1", type ->typeResult.getType1(type));
        map.put("类型2", type ->typeResult.getType2());
        map.put("类型3", type ->typeResult.getType3());
    }

    public String getTypeResult(String type){
        Function<String, String> function = map.get(type);
        if(function != null){
            String result = function.apply(type);
            return result;
        }
        return null;
    }
}

@Service
class TypeResult{

    public String getType1(String type){
        return "传入的type为"+type+"获取类型1结果";
    }
    public String getType2(){
        return "获取类型2结果";
    }
    public String getType3(){
        return "获取类型3结果";
    }
}
复制代码

 

posted @   我没有出家  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示