Java设计模式之策略模式实践

1、策略接口

java 复制代码
/**
 * 策略接口
 */
public interface DemoStrategy {
    Result execute();
}

2、策略工厂

java 复制代码
/**
 * 策略工厂
 */
@Component
public class DemoFactory {
    @Resource
    private final Map<String, DemoStrategy> demoStrategy= new ConcurrentHashMap<>();

    public DemoStrategy doStrategy(String data){
        return this.demoStrategy.get(data);
    }
}

3、策略实现类

java 复制代码
/**
 * 策略实现类
 */
@Component("dataName")
public class DataNameImpl implements DemoStrategy {
    
    @Override
    public Result execute() {
        //do something
        return null;
    }
}

4、调用Demo

java 复制代码
// class 

@Resource
private DemoFactory demoFactory ;

//method 

String dataName= "dataName";
                
return demoFactory.doStrategy(dataName).execute();
相关推荐
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 基于Android的校园快递互助APP为例,包含答辩的问题和答案
java·eclipse
damo012 小时前
stripe 支付对接
java·stripe
麦麦鸡腿堡3 小时前
Java的单例设计模式-饿汉式
java·开发语言·设计模式
假客套3 小时前
Request method ‘POST‘ not supported,问题分析和解决
java
傻童:CPU3 小时前
C语言需要掌握的基础知识点之前缀和
java·c语言·算法
爱吃山竹的大肚肚3 小时前
@Valid校验 -(Spring 默认不支持直接校验 List<@Valid Entity>,需用包装类或手动校验。)
java·开发语言
雨夜之寂4 小时前
mcp java实战 第一章-第一节-MCP协议简介.md
java·后端
皮皮林5514 小时前
蚂蚁又开源了一个顶级 Java 项目!
java
吹晚风吧4 小时前
spring是如何解决循环依赖的(二级缓存不行吗)?
java·spring·循环依赖·三级缓存
九丶弟4 小时前
SpringBoot的cache使用说明
java·spring boot·spring·cache