广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot中实现策略模式+工厂模式的方法
  • 550
分享到

Springboot中实现策略模式+工厂模式的方法

2024-04-02 19:04:59 550人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

  策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在SpringBoot中实现策略和工厂模式?   具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程

  策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在SpringBoot中实现策略和工厂模式?

  具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的IF ELSE IF ELSE....。接下来咱们直接实现,项目结构图:

  工厂类FactoryStrategy负责创建策略的工厂,代码比较简单,比较关键的一点是AutoWired一个Map<String, Strategy> 这个会在初始化的时候将所有的Strategy自动加载到Map中,是不是很方便。使用concurrentHashMap是防止多线程操作的时候出现问题。同时还要注意@Service注解。

package com.hqs.pattern.factory;

import com.hqs.pattern.strategy.Strategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@Service
public class FactoryForStrategy {
    @Autowired
    Map<String, Strategy> strategys = new ConcurrentHashMap<>(3);
    public Strategy getStrategy(String component) throws Exception{
        Strategy strategy = strategys.get(component);
        if(strategy == null) {
            throw new RuntimeException("no strategy defined");
        }
        return strategy;
    }
}

  接下来就是Strategy接口,就一个doOperation方法。

package com.hqs.pattern.strategy;


public interface Strategy {
    String doOperation();
}

  定义接口的实现,我定义了三个, 都类似,这里我就放出一个来吧。Component里边的one是指定其名字,这个会作为key放到Map strategys里边。

package com.hqs.pattern.strategy.impl;

import com.hqs.pattern.strategy.Strategy;
import org.springframework.stereotype.Component;

@Component("one")
public class StrategyOne implements Strategy {
    @Override
    public String doOperation() {
        return "one";
    }
}

  好了,写一个Controller类,用于进行测试,当然我还是使用swagger,使用swagger的时候有个细节,就是注意生产上一定不能打开,否则是个非常可怕的事情。

package com.hqs.pattern.controller;

import com.hqs.pattern.factory.FactoryForStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.WEB.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class StrategyController {
    @Autowired
    FactoryForStrategy factoryForStrategy;
    @PostMapping("/strategy")
    @ResponseBody
    public String strategy(@RequestParam("key") String key) {
        String result;
        try {
            result = factoryForStrategy.getStrategy(key).doOperation();
        } catch (Exception e) {
            result = e.getMessage();
        }
        return result;
    }
}

  打开swagger进行测试,输入one,返回one。输入four,返回no strategy defined。后续如果有新策略的话,直接实现即可。

  好了,这块就这么完成了,你get到了吗?

  代码地址:https://GitHub.com/stonehqs/pattern.git

到此这篇关于Springboot中实现策略模式+工厂模式的文章就介绍到这了,更多相关Springboot策略模式工厂模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot中实现策略模式+工厂模式的方法

本文链接: https://www.lsjlt.com/news/142148.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot中实现策略模式+工厂模式的方法
      策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在springboot中实现策略和工厂模式   具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序...
    99+
    2022-11-13
  • C++中策略模式和工厂模式的区别
    工厂模式和策略模式看着很像,经常让人混淆不清; 它们的区别在哪里,需要细细体味; 相似点 在模式结构上,两者很相似; 差异 用途不一样 工厂是创建型模式,它的作用...
    99+
    2022-11-13
  • 怎么用模板方法+策略+工厂方法模式来优化代码
    这篇文章主要讲解了“怎么用模板方法+策略+工厂方法模式来优化代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用模板方法+策略+工厂方法模式来优化代码”...
    99+
    2022-10-19
  • C#实现工厂方法模式
    场景:简单工厂时候,我设计了一个场景,有三种剑去打怪,这时候,需求变化了,我三种剑变成了,匕首、剑以及木棒,想要用工厂方法来实现,怎么弄? 1.上文讲过简单工厂模式,它的最大优点在于...
    99+
    2022-11-13
  • java中抽象工厂模式与工厂方法模式的区别
    一、简单工厂模式特点:它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。create()方法通常是静态的,所以也称之为静态工厂。缺点:扩展性差(我想增加一种面条,除了新增一个面条产...
    99+
    2015-05-09
    java入门 java 抽象工厂模式 工厂方法模式 区别
  • 浅谈用SpringBoot实现策略模式
    目录问题的提出策略模式代码的实现进一步的思考心得体会问题的提出 阅读别人代码的时候最讨厌遇到的就是大段大段的if-else分支语句,一般来说读到下面的时候就忘了上面在判断什么了。很...
    99+
    2022-11-12
  • Java工厂方法模式怎么实现
    这篇文章主要讲解了“Java工厂方法模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java工厂方法模式怎么实现”吧!一、什么是工厂方法模式?工厂方法模式:也叫虚拟构造器模式或者多...
    99+
    2023-06-29
  • php工厂方法模式如何实现
    本篇内容介绍了“php工厂方法模式如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP工厂方法模式的好处是:核心类只需要关注工厂类的...
    99+
    2023-06-29
  • C#如何实现工厂方法模式
    本篇内容介绍了“C#如何实现工厂方法模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!场景:简单工厂时候,我设计了一个场景,有三种剑去打怪,...
    99+
    2023-07-02
  • 关于工厂方法模式的Java实现
    目录工厂方法模式简述创建步骤步骤1步骤2步骤3步骤4步骤5工厂方法模式简述 与简单工厂模式基本相同,只是工厂是一个抽象的,需要有具体的工厂去实现它,然后利用这个工厂生产产品,之所以出...
    99+
    2022-11-13
  • SpringBoot策略模式的实践使用
    目录前言实践使用总结优点:缺点:前言 在实际业务代码中,我们经常会碰到这样的代码: String type = actualService.getRealtype(uid); ...
    99+
    2022-11-12
  • Java简单工厂,工厂方法,抽象工厂模式怎么实现
    这篇文章主要讲解了“Java简单工厂,工厂方法,抽象工厂模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java简单工厂,工厂方法,抽象工厂模式怎么实现”吧!1、简单工厂模式1.定...
    99+
    2023-06-29
  • 在java项目中实现工厂模式的方法
    在java项目中实现工厂模式的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java 工厂模式的实例详解工厂方法中的“工厂”和我们平常理解的一样:用于生产产品。而客户是要和...
    99+
    2023-05-31
    java 工厂模式 ava
  • python工厂方法模式原理与实现
    目录一、简介二、工厂方法模式的主要角色三、简单工厂模式四、工厂模式五、抽象工厂模式总结一、简介 工厂模式是属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对...
    99+
    2022-11-13
  • C++设计模式之工厂方法模式的实现及优缺点
    工厂方法模式是在简单工厂模式的缺点上进行优化的,我们都知道,在简单工厂模式中,要去增加或者减少一个产品的类型,都需要修改工厂中的if-else判断。这样子显然不符合我们代码开发中的开...
    99+
    2022-11-12
  • java设计模式学习之工厂方法模式如何实现
    这篇文章主要为大家展示了“java设计模式学习之工厂方法模式如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java设计模式学习之工厂方法模式如何实现”这篇文章吧。工厂方法模式(Facto...
    99+
    2023-05-31
    java
  • javascript设计模式中的策略模式怎么实现
    这篇文章主要讲解了“javascript设计模式中的策略模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript设计模式中的策略模式怎么实现”吧!一. 认识策略模式策略...
    99+
    2023-06-26
  • Java设计模式中的策略模式如何实现
    这篇文章主要介绍了Java设计模式中的策略模式如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java设计模式中的策略模式如何实现文章都会有所收获,下面我们一起来看看吧。1 概述在平时开发中,往往会遇到这...
    99+
    2023-06-30
  • golang实现简单工厂、方法工厂、抽象工厂三种设计模式
    1、简单工厂: 第一步:创建一个文章接口,需要实现阅读和写作的功能。 type Article interface { ReadArticle() string WriteArt...
    99+
    2022-11-13
  • Java怎么实现工厂方法设计模式
    这篇文章主要介绍“Java怎么实现工厂方法设计模式”,在日常操作中,相信很多人在Java怎么实现工厂方法设计模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现工厂方法设计模式”的疑惑有所帮助!...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作