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结果"; } }