原文:使用反射+策略模式代替项目中大量的switch case判断

我这里的业务场景是根据消息类型将离线消息存入mongoDB不同的collection中。其中就涉及到大量的分支判断,为了增强代码的可读性和可维护性,对之前的代码进行了重构。 先对比一下使用反射 策略模式前后的代码: 重构前: 重构后: 我们可以看到重构前的代码充斥着大量的分支判断,以后每增加一个新的消息类型就要增加一个新的具体实现类和增加一个新的分支判断,可拓展性是相当差的 而重构后的代码当需要增 ...

2017-09-11 15:13 5 3396 推荐指数:

查看详情

如何优化代码中大量的if/else,switch/case?

前言 随着项目的迭代,代码中存在的分支判断可能会越来越多,当里面涉及到的逻辑比较复杂或者分支数量实在是多的难以维护的时候,我们就要考虑下,有办法能让这些代码变得更优雅吗? 正文 使用枚举 这里我们简单的定义一个表示状态的枚举 ...

Tue Apr 30 18:02:00 CST 2019 2 3127
使用策略模式减少switch case 语句

策略模式 很简单的一个定义:抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。 场景 在这之前,你需要看这个文章SPA+.NET Core3.1 GitHub第三方授权登录 ,了解 ...

Mon Apr 12 07:09:00 CST 2021 0 246
运用设计模式告别项目中大量臃肿的if else

前言 以前写过的一个老项目中,有这样一个业务场景,比喻:一个外卖系统需要接入多家餐馆,在外卖系统中返回每个餐馆的菜单列表 ,每个餐馆的菜单价格都需要不同的算法计算。 代码中使用大量的if else嵌套连接,一个类中数千行代码(眼睛快看瞎...),而且随着业务的扩展,接入的餐馆会越来越多 ...

Fri Jul 03 05:36:00 CST 2020 4 1579
Springboot使用策略模式+工厂模式代替大量if-else

一.实战需求:redis-key过期监听 二.问题:大量key会造成监听代码臃肿 三.解决方案:使用策略模式+工厂模式代替if-else 代码: 第一部分:redis-springboot配置 第二部分:监听处理器 第三部分:策略接口 ...

Wed Sep 08 02:39:00 CST 2021 0 204
springboot项目中使用设计模式策略模式

https://www.cnblogs.com/xiufengchen/p/11609691.html 策略模式使用常用,支付,之前做了微信支付,支付宝支付,然后另外一个同事写了一个银联支付,那么如果代码方法一起就会导致代码不是很好操作所以,采用策略模式进行,同事只需要写一个实现类 ...

Thu Oct 22 17:09:00 CST 2020 0 751
springboot项目中使用设计模式策略模式

策略模式使用常用,支付,之前做了微信支付,支付宝支付,然后另外一个同事写了一个银联支付,那么如果代码方法一起就会导致代码不是很好操作所以,采用策略模式进行,同事只需要写一个实现类,就可以了, 在协作过程中比较容易。 在策略模式(Strategy Pattern)中,一个类的行为 ...

Mon Sep 30 03:49:00 CST 2019 0 4105
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM