springboot实现的工厂模式
参考:个人理解简单工厂模式和策略模式的区别_Leonis丶L的博客-CSDN博客_策略模式和工厂模式的区别
下面这个是有个工厂类,用于获取TaskService,其中TaskService存在多个实现类,其中通过一个taskType区分。
@Service
public class TaskFactory {private final Map<String, TaskService> taskMap = new ConcurrentHashMap<>();@Autowiredpublic TaskFactory(Map<String, TaskService> taskMap) {taskMap.forEach(this.taskMap::put);}public TaskService getTaskServiceByTaskType(String taskType){TaskService service = this.taskMap.get(taskType);if(service == null){throw new BizException(String.format("taskType:%s dose not support", taskType));}return service;}
}
主要通过下面这个注入实现
@Autowiredpublic TaskFactory(Map<String, TaskService> taskMap) {taskMap.forEach(this.taskMap::put);}
taskMap中的key是TaskService的每个子类Service实现的别名,比如@Component("10") TaskServiceImpl1、@Component("20") TaskServiceImpl2、@Component("30") TaskServiceImpl3等,value为具体的实现类,这样可以通过这个map的key获取具体的实现类
springboot实现的工厂模式相关推荐
- springboot工厂模式_最新整理138道阿里、快手等大厂面试题解析:基础+Spring+并发+JVM+设计模式+缓存...
这些题目都是阿里.百度.美团.快手等一线互联网公司面试被问到的题目.熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率,希望可以帮助大家,祝大家求职顺利! Java集合22题 ArrayList ...
- springboot 使用工厂模式+策略模式替代多重if 案例
项目背景: 由于做的是物联网项目,现在需要实现的是网关入网+子设备注册:网关有3个逻辑,分别为首次入网.解绑后同一个人入网(恢复).解绑后换人入网(换人).子设备注册: 原先写法是: if(type ...
- 实践:使用Spring 原生注解来快速实现 策略模式 + 工厂模式
作者:Richard_Yi juejin.im/post/5db0e910518825648f2ef355 前言 这阵子在做项目组重构的工作,工作中的一部分就是就目前代码库中与企业交互的逻辑抽离出来, ...
- 轻松看懂java设计模式简单工厂模式
点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...
- 设计模式(二)-------------- 工厂模式
这篇博客我想来说一下关于工厂模式的一些知识,工厂模式在Spring框架中运用是十分广泛的.由于Spring的控制反转思想,使得我们的一些bean都交由BeanFactory统一进行管理. 那么今天我就 ...
- 设计模式之简单工厂模式与策略模式
目录 一.简单工厂模式 二.策略模式 三.简单工厂和策略模式的相同和不同点 四.SpringBoot中用简单工厂搭配策略模式 一.简单工厂模式 概述:定义一个工厂类,它可以根据参数的不同返回不同的实例 ...
- 工厂模式的缺点及解决到生产的应用
目录 背景 需求 分析 代码 1.工厂类 2.业务类 3.客户端 总结 背景 工厂模式实际开发中用到很多,网上的介绍案例非常多.工厂模式存在一些问题: 使用工厂前:我们有一系列的产品类,都有共同的父类 ...
- SpringBoot下的策略模式,消灭了大量的ifelse,真香!
前言 项目中有这样一个场景,在公园放置了用来拍摄人像的识别杆,根据用户在不同识别杆之间采集的图象来计算用户的运动距离.由于涉及到许多公园,每个公园的布局不同,识别杆之间距离不同,算法也不同.但代码中每 ...
- 《跟二师兄学Nacos吧》EXT-01篇 看看Nacos是怎么活学活用简单工厂模式的!
学习不用那么功利,二师兄带你一起轻松读源码- 番外篇简介 Nacos源码分析系列文章,在开篇已经提到过,写作的目标有两个:第一,能够系统的学习Nacos知识:第二,能够基于Nacos学到涉及到的知识点 ...
最新文章
- 2022-2028年中国儿童医疗行业深度调研及投资前景预测报告
- 怎么做好企业IT运维工作
- OpenCV绘图和文本输出功能的实例(附完整代码)
- IOS开发基础之时钟的实现
- junit编写测试代码_编写数据访问代码测试-不测试框架
- 好用的cnn网络_DPCNN,究竟是多么牛逼的网络呢?
- 解读阿里官方代码规范
- OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
- 数据双向绑定_手写 Vue3 数据双向绑定 理解Proxy
- Yale CAS + .net Client 实现 SSO(2)
- 信息安全工程师真题1
- Unity3D教程:iTween插件的介绍和用法
- 合并报表和汇总报表之如何合并报表
- 多线段几何图形—— 简单几何图形(求几何图形面积)
- 搜狗拼音输入法自定义格式的时间和日期并快捷键触发
- 如何在github上创建自己的个人网站
- 【C语言必经之路——第13节】C语言中的数据类型详解
- 《十年》中的没有颤抖的那两个字——“始于你好,终于你好”
- 交换机和BBU的接口编号以及华为ATN950 BBU接口写法
- threshold 阈值,阀值,阙值