当前位置: 首页 > news >正文

网站建设公司该如何选择/bt kitty磁力猫

网站建设公司该如何选择,bt kitty磁力猫,网站建设基础服务报价,怎么做网站像淘宝这样的今天,我做的这个系统的业务方提了一个小业务大改的需求。我的内心是一万句MMP的T﹏T。大概情况是这样子的:某个业务曾经保存了3个字段:字段A,字段B,字段C其中每个字段大概夹杂着大量的if校验并同时影响着主流程。现在要改成:字段C&#xff0c…

今天,我做的这个系统的业务方提了一个小业务大改的需求。我的内心是一万句MMP的T﹏T。

大概情况是这样子的:

某个业务曾经保存了3个字段:

字段A,字段B,字段C

其中每个字段大概夹杂着大量的if校验并同时影响着主流程。

现在要改成:

字段C,字段D,字段E,字段F

对主流程影响的结果不变,但是校验规则基本上算是翻新重做了。

简单分析以下发现,其实还有一个隐藏需求是,本次改动不会影响到正在运行的业务流程。

鉴于需求方天天以改需求为乐,其实我很自然而然的就想到了设计模式中的策略模式,新增一个versionId字段,并根据流程的versionId走V1的校验或者走V2的校验。(不,其实我是想根据createdTime来判断新老版本的)

回顾一下策略模式我们大概需要:xxxStrategy接口

xxxStrategyV1类

xxxStrategyV2类

以及一个xxxManager或者xxxFactory来获取具体的 策略。

但是最近我在学习Java8的lamdba和之前很少用到的Enum,我突然想到:我是不是可以用枚举来代替工厂类?

策略模式中可替换的具体算法我是不是可以用lamdba的Predicate或Function来做?

于是便有了以下代码:

public enum xxxStrategy{

v1(.....),

v2(....);

private Consumer paramCheck;

private Function getProcessType;

public static xxxStrategy getxxxVersion(BusinessObject o){

.......

}

}

写起来其实很简单,首先将老的入参校验,与流程判断的代码改造成lamdba并往枚举中V1里面丢,

然后再去写V2的入参校验与流程判断。

写完以后,我似乎感觉代码有一点怪怪的。我貌似也说不清楚为什么。。

仔细思考了一下以后,发现了原因。这里我使用了枚举来管理业务逻辑,而项目中其他的业务逻辑全都放在spring的service中进行管理。

通过枚举的静态方法获取策略本质上是静态工厂,脱离了spring的体系以后,似乎与整个项目风格不合。有一种oop中出了一个叛徒的感觉-_-#。

为此我大概反思了一下。我为什么非要看起来那么oop?或者说这一段与整个项目风格迥异的代码该不该写?

使用oop是为了方便的继承,安装接口便于代码复用。当然我这V1,V2Strategy根本不需要代码复用,只需要重复调用即可。写成util应该也完全可以。

业务代码不归spring管,这么写好么?依赖注入是用来解决组件间复杂的循环依赖和复杂的初始化工作的。这块策略与策略工厂似乎完全没有必要去依赖注入。

如果上面2条都成立,我突然发现,貌似绝大部分的service似乎完全没有必要强行写成service,反正都是只用一次的业务代码,做成static貌似没啥毛病的样子啊。

说实话写到这里我其实有点点混乱,不过我还是把这次代码改造记录下来吧,

欢迎有兴趣的大佬讨论一下。

http://www.lbrq.cn/news/1412983.html

相关文章:

  • 有免费做理化试验的网站吗/seo英文
  • wordpress站点预览/如何做网络营销?
  • 临清设计网站/汕头网站建设公司哪个好
  • 南京教育网站开发/培训方案
  • 网站开发建设明细报价表/站长之家域名查询排行
  • 文件下载网站源码/win10一键优化工具
  • wordpress万能主题/超级seo外链
  • 在线商城平台/网站推广优化网址
  • 课外辅导东莞网站建设技术支持/seo查询爱站网
  • 建商城站用WordPress/域名归属查询
  • 济南国画网站建设/广州seo网站推广公司
  • 猎头公司是什么意思/seo项目
  • 武汉网站设计厂家/他达拉非片和伟哥区别
  • 怎么在记事本上做网站/百度关键词价格
  • 网站建设顺德/免费推广软件平台
  • 做网站的宽和高有限制吗/互联网营销师报名
  • 韩国风格网站整站源码/百度快速优化排名软件
  • 扎染毕业设计代做网站/seo网站优化排名
  • 网站开发公司东莞/qq推广引流怎么做
  • 宏升温岭网站建设/百度上海总部
  • 开彩票网站做私庄/百度账号人工申诉
  • 什么企业需要网站建设/做企业网站建设的公司
  • 做旅游宣传图的网站有哪些/成都seo招聘
  • 网站优化靠谱/的磁力搜索引擎
  • 合肥做网站便宜/友链交换网站
  • 成都做app定制开发多少钱/石家庄seo报价
  • 江西昌宇建设工程公司网站/线上营销推广方式
  • 瑞昌建站公司/自己做网站怎么做
  • bugku中网站被黑怎么做/外贸网络推广
  • 网站动态背景欣赏/seo优化排名工具
  • 贪心算法(Greedy Algorithm)详解
  • 08.常见文本处理工具
  • 说一下事件传播机制
  • Mac(五)自定义鼠标滚轮方向 LinearMouse
  • API生命周期10阶段
  • SCAI采用公平发射机制成功登陆LetsBonk,60%代币供应量已锁仓