欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式-工厂模式+策略模式

程序员文章站 2022-07-14 12:06:50
...

由于现如今都是使用spingboot框架,这么现在就是基于springboot来实现工厂模式+策略模式

为了防止大量的if…else…或switch case代码的出现,可以使用策略模式+工厂模式进行优化。
在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下:

工厂模式+策略模式-低配版

Factory工厂类

@Service
public class ReportFactory {

    /**
     * 初始化的时候将所有的ReportService自动加载到Map中
     */
    @Autowired
    private final Map<String, ReportService> reportIns = new ConcurrentHashMap<>();

    public ReportService getReportIns(String code) {
        ReportService reportInstance = reportIns.get(code);
        if (reportInstance == null) {
            throw new RuntimeException("未定义reportInstance");
        }

        return reportInstance;
    }

}

接口

public interface ReportService {
    S