spring 策略模式与工厂模式,springboot 工厂模式
策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在跳羚中实现策略和工厂模式?
具体策略模式和工厂模式的用户模式我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的如果还有如果还有.接下来咱们直接实现,项目结构图:
工厂类工厂战略负责创建策略的工厂,代码比较简单,比较关键的一点是自动连线一个映射字符串,策略这个会在初始化的时候将所有的战略自动加载到地图中,是不是很方便。使用实现队列是防止多线程操作的时候出现问题。同时还要注意@服务注解。
包com。HQs。模式。工厂;导入com。HQs。模式。策略。策略;导入org。spring框架。豆子。工厂。注释。自动连线;导入org。spring框架。刻板印象。服务;导入Java。util。地图;导入Java。util。并发。并发hashmap/* * * * @作者黄清石* @ Date 2019-01-31 */@ service public class factory for Strategy { @ Autowired MapString,Strategy ys=new concurrent hashmap(3);公共策略获取策略(字符串组件)抛出异常{策略策略=策略。获取(组件);if(strategy==null){抛出新的运行时异常(未定义策略);}回报策略;}}接下来就是战略接口,就一个doooperation方法。
包com。HQs。模式。策略;/* * * * @作者黄青石* @日期2019-01-31 */公共接口策略{ String do操作();}定义接口的实现,我定义了三个,都类似,这里我就放出一个来吧100 .组件里边的任何人是指定其名字,这个会作为键放到地图策略里边。
包com。HQs。模式。策略。impl导入com。HQs。模式。策略。策略;导入org。spring框架。刻板印象。组件;/* * * * @作者黄清石* @ Date 2019-01-31 */@组件(一)公共类战略一实现策略{ @ Override public String do operation(){ return one ;}}好了,写一个控制器类,用于进行测试,当然我还是使用斯瓦格,使用时髦的的时候有个细节,就是注意生产上一定不能打开,否则是个非常可怕的事情。
包com。HQs。模式。控制器;导入com。HQs。模式。工厂。工厂为战略;导入org。spring框架。豆子。工厂。注释。自动连线;导入org。spring框架。刻板印象。控制器;导入org。spring框架。网络。绑定。注释。后期映射;导入org。spring框架。网络。绑定。注释。请求参数;导入org。spring框架。网络。绑定。注释。响应正文;/* * * * @作者黄清石* @ Date 2019-01-31 */@ controller公共类策略控制器{ @ Autowired factory for strategy factory for strategy;@帖子映射(/strategy )@响应正文公共字符串策略(@ request param( key )字符串关键字){字符串结果;请尝试{ result=工厂策略。获取策略(答案).do操作();} catch(Exception e){ result=e . getmessage();}返回结果;}}打开时髦的进行测试,输入一,返回一。输入四,返回没有定义策略。后续如果有新策略的话,直接实现即可。
好了,这块就这么完成了,你得到到了吗?
代码地址:https://github。com/stonehqs/pattern。饭桶
到此这篇关于跳羚中实现策略模式工厂模式的文章就介绍到这了,更多相关跳羚策略模式工厂模式内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。